原创 BZOJ 3083 遙遠的國度 樹鏈剖分 線段樹

傳送門 //各位不要吐槽我寫水題的題解 題目大意: 給你一棵有點權的有根樹,進行三種操作 1.換根 2.改變某兩點間簡單路徑上的權值爲一個指定值 3.查詢在當前根

原创 BZOJ 1614: [Usaco2007 Jan]Telephone Lines架設電話線 二分答案 最短路

題目大意:給定一個圖,定義兩點間的距離爲所走的邊中邊權最大的,現在可以使k條邊的邊權爲0,求兩點間的邊權最小值 乍一看我還以爲是分層圖呢,後來發現並不需要,顯然如果去掉一條路徑上的邊,要優先刪掉大的邊,因而我們可以二分整條路徑上

原创 Usaco 輕軌 貪心

傳送門   有N(1<=N<=20,000)個站點的輕軌站,有一個容量爲C(1<=C<=100)的列車起點在1號站點,終點在N號站點,有K(K<=50,000)組牛羣,每組數量爲M_i(1<=M_i<=N),行程起點和終

原创 NOI2015 D1 T2 軟件包管理器

傳送門 好奇 那年的NOI發生了什麼,爲什麼出得我一個NOIP提高組連省一都沒拿到的渣渣半小時直接切1A…… 咳咳 本題大概隨便樹剖就行了,在正常樹剖的基礎上維護一個last數組就行了,last[i]表示i的所有子樹中最後一個點在

原创 NOIP 2015 D2 T2 子串 substring

這思博題卡我常數,出題人不得好死 題目大意: 有兩個僅包含小寫英文字母的字符串A和B。現在要從字符串A中取出K個互不重疊的非空子串,然後把這k個子串按照其在字符串A中出現的順序依次連接起來得到一個新的字符串,請問有多少種方案可

原创 USACO 2008 Jan Gold 3.Cell Phone Network 樹形dp

本題的大意就是在一棵樹上選一些節點,被選中的節點可以覆蓋他相 鄰的點,問最少需要放幾個節點 經典的樹形DP可以發現對於以i爲節點的子樹在同一時刻只存在三種狀況我們用f[i]來表示該店選時的最少選擇的點數數用g[i]表示該點不選兒

原创 C數列 vijos P1350 IDS 搜索

見前一發題解,無非就是把數字的範圍換了一下,運算的方式換了一下 並沒有什麼 傳送門 下面是代碼 #include <stdio.h> #include <string.h> #include <iostream> #inclu

原创 尋找自由的鑰匙 NKOI 樹形DP

題目描述 通向自由的鑰匙被放n個房間裏,這n個房間由n-1條走廊連接。但是每個房間裏都有特別的保護魔法,在它的作用下,我無法通過這個房間,也無法取得其中的鑰匙。雖然我可以通過消耗能量來破壞房間裏的魔法,但是我的能量是有限

原创 BZOJ JLOI2014 松鼠的新家

我想說的是,MD,我的線段樹就長得這麼難看? 傳送門 這是一道樹鏈剖分的裸題 給你一棵樹,按照給定的順序,每次將兩點的簡單路徑上的點點權+1,最後詢問各點的點權(只在最後詢問一次) 由於只詢問一次,所以可以樹上差分,每次將兩個

原创 BZOJ 1067 降雨量 線段樹

傳送門 這題也是醉了 估計考點是特判 不是數據結構 考察if和else的運用 主要是考慮幾種情況的分類 看代碼吧 對了 我寫的是線段樹 因爲我懶 懶得搞ST #include <stdio.h> #include <stri

原创 拓撲排序 [NOIP2003]神經網絡 T1

傳送門 這題水的一堪……大概就是給你一個點的被激活的限制條件,然後給你點的有向邊的連接,問你最後有多少出度爲0的點的狀態不是0 直接拓撲排序就行了,當這個點的入度爲0且滿足激發條件就激發他,然後接着往下做…… #include

原创 BZOJ 1304 葉子的染色 樹形DP

傳送門 樹形DP 開始的時候似乎並沒有什麼想法,所以我們來觀察一下他的性質,便於狀態的轉移 首先,對於同一個節點及其子樹,並不會在他的兒子上同時存在兩個矛盾。因爲如果同時存在,不管前面放哪個顏色,都會使另一個不合法 其次,大膽YY

原创 Shaping Regions Usaco 遞歸分治

傳送門 這題坑了我好久 貌似掃描線不好寫啊,我們來看這題特有的性質。由於放置先後所以總是能夠覆蓋之前的。如果用暴力話,我們需要每一次將範圍內所有點打上標記而且即使注意到覆蓋,時間複雜度仍然不會好多少出數據的人也不傻他們很認真卡

原创 染色問題 快速冪 遞推

在一串未打結的項鍊上(意思就是說項鍊的左端和右端不相連),有N顆珠子,你有M種顏色,然後就問你有多少種方法將每一顆珠子都染上顏色,使得任意兩顆相鄰的珠子的顏色不同。 對於100%的數據,1<=N,M,P<=1,000,000,0

原创 Picture 線段樹 掃描線 Usaco

傳送門 很裸的掃描線 0. 寫在前面 對於 這類題 ,他們常有十分顯著的特徵基本上就是幾個簡單圖形進行覆蓋然 後統計周長或者面積,有的會利用“掃描”特點一些奇怪東西然而這也往存在 掃描線求面積 要直接統計一個圖形的