原创 [PKU1655]Balancing Act

找樹的重心,樹的分治基礎題 DFS時找到去掉這點後每個聯通分量的點數的最大值並更新ans,最後輸出ans即可 #include<iostream> #include<cstdio> #include<vector> #include<c

原创 [BZOJ1051/POJ2186]Popular Cows

大意就是給定一個有向圖,求有多少個頂點是由任何頂點出發都可達的。 頂點數<= 10,000,邊數 <= 50,000定理 有向無環圖中唯一出度爲0的點,一定可以由任何點出發均可達 由於無環,所以從任何點出

原创 [BZOJ1003][ZJOI2006]物流運輸trans

最短路+dp a[i][j]表示符合第i天到第j天情況的一條最短路 dp方程 dp[i]=min(dp[i],dp[j]+k+(i-j)*a[j+1][i]); 注意要開long long... #include<iostream> #

原创 [PKU3264]Balanced Lineup

RMQ問題 用的st #include<cstdio> using namespace std; const int maxn=50010; int RMQ[maxn]; int mm[maxn]; int best1[20][maxn

原创 [PKU2774]Long Long Message

求兩個字符串的最長公共子序列 n<100000 後綴數組基礎題,學習用 直接copy了dc3的模板... #include <cstdio> #include <cstring> using namespace std; #defin

原创 [HDU4786]Fibonacci Tree

剛讀題還以爲是WJMZBMR出的tree(bzoj2654)... 其實只用分別把黑邊放在前面 白邊放在前面做mst,統計兩次用的白邊數量,看看這個區間內是否有fbi數就可以了 代碼寫的很挫而且由於數組開小RE了好幾次-_-# #in

原创 [BZOJ1059][ZJOI2007]矩陣遊戲

求二分圖最大匹配,直接讀入就行,圖都不用建 可以當成最大匹配的模板。。 #include<iostream> #include<cstring> #include<cstdio> const int MAXN=510; int uN