原创 估計要退役了吧。

很難過吧。。。考得完爆了。。。 。。。。。。其實也沒什麼可以說的。。。都是蒟蒻的藉口罷了。。。 。。。自己果然還只是半吊子水平呢。。。。 。。。祝大家都能進省隊。。。其實只要不要有遺憾就好了呢。。。 雖然我很遺憾或許不能走下去了。。。

原创 BZOJ2801: [Poi2012]Minimalist Security

題目大意: 一張n個點m條邊的無向圖,有點權有邊權都是非負,且每條邊的權值小於等於兩個頂點的權值和,現在要將每個點減一個非負整數使得每條邊權等於兩個頂點的點權和,問最大修改代價和最小修改代價 題解: 每一個連通塊如果確定了一個點的值,

原创 BZOJ3836 [Poi2014]Tourism

簡要題意: 給定一個n個點,m條邊的無向圖,其中你在第i個點建立旅遊站點的費用爲Ci。在這張圖中,任意兩點間不存在節點數超過10的簡單路徑。請找到一種費用最小的建立旅遊站點的方案,使得每個點要麼建立了旅遊站點,要麼與它有邊直接相連的點

原创 BZOJ2792: [Poi2012]Well

題目大意: 給n個數,每個數可以減去一個非負整數,總修改代價爲所有這些非負整數的和,求總代價在m之內且至少有一個數修改爲0,max{|Xi - Xi+1|}的最小值。 題解: 考慮二分最小值,對於每個數求出最小代價。 但這樣不保證會有

原创 BZOJ2802: [Poi2012]Warehouse Store

日常刷水… 簡單貪心,考慮用一個堆維護已選的客人,若能選則選,不能就取堆中購物數最多的客人不取,取當前客人即可。 用了pdds還是好慢啊TAT。 代碼: #include<bits/stdc++.h> #include<ext/pb_

原创 BZOJ3069: [Pa2011]Hard Choice 艱難的選擇

第一眼感覺是LCT維護動態SCC… 想想感覺太碼了,於是yy了個思路清奇的做法。 考慮離線詢問這樣刪邊就變成了加邊。 考慮求出原圖的生成樹,然後每當加入一條邊,就只要把樹上兩點路徑間邊權全部加一。 然後若兩點間邊權全部>=2則說明每條

原创 BZOJ4310: 跳蚤

二分+後綴數組。 驗證時貪心去驗證,能不選儘量不選,這個東西可以求兩後綴的LCP然後去判斷就可以了。 後綴自動機黨怎麼能寫後綴數組 真香。 代碼 /*******************************************

原创 BZOJ3514: Codechef MARCH14 GERALD07加強版

亂搞好題。。。 考慮加入一條邊,如果生成環,那麼把環上最早加入的邊刪去,答案就是用n-(編號在l到r的邊中刪去的邊的編號在1到l中的邊)。證明的話,yy一下吧。 想到這你可以激動的去寫一發樹上倍增,突然發現無法處理邊被替換 怎麼辦?上

原创 BZOJ3545: [ONTAK2010]Peaks

Description 在Bytemountains有N座山峯,每座山峯有他的高度h_i。有些山峯之間有雙向道路相連,共M條路徑,每條路徑有一個困難值,這個值越大表示越難走,現在有Q組詢問,每組詢問詢問從點v開始只經過困難值小於等於

原创 BZOJ4516: [Sdoi2016]生成魔咒

題意:給定n個將字符插至字符串尾的操作,求每次操作後本質不同的子串數。 題解: 一看“本質不同的子串”就知道是SAM啦,在建自動機時維護ans即可,注意數的值域過大要使用map。 #include<bits/stdc++.h>

原创 BZOJ2733:永無鄉

線段樹合併裸題。 另外用並查集維護當前的根在哪裏即可。 代碼: #include<bits/stdc++.h> using namespace std; int read(){ int x=0,f=1; char

原创 BZOJ3879: SvT

兩子串的最長公共後綴就是在後綴樹上他們的LCA的最長長度。 考慮將原串翻轉,公共前綴變公共後綴。 建出原串後綴自動機,然後建出後綴樹。 對於每次詢問,我們建出其虛樹,在虛樹上DP即可。 注意到模數太大超過最大可能答案,我們不必

原创 BZOJ1367: [Baltic2004]sequence

感覺非常神仙的一道題。 假設讀入數組爲A,所求數組爲B。 我們先假設B中元素可以相同。 考慮如果A是一個單調上升的序列,我們直接取它本身就可以了。 如果A單調下降,那麼B中每一位都顯然是它的中位數。 那我