原创 NEFU2013省賽集訓6

E題 題意:很明顯,給你一個圖,剛開始所有點都不經過,但是隨着查詢操作,點會一個個開放,然後問你每次查詢的時候在當前點能通過的路徑的情況下的多源最短路徑問題。 思路:Q很大有100000,那麼每次更新操作做多隻能O(n^2)了,那麼可以考

原创 HDU 4514 湫湫系列故事——設計風景線 (判環+求最大樹直徑)

思路:並查集判環,然後bfs求每課樹的直徑。有個定理,對於一棵樹,求它的直徑,那麼先任意找一點,再求到這個點最遠的點爲v,然後求到v最遠的點的距離就是樹的直徑。 #include <iostream> #include <cstdio>

原创 SG函數(HDU1848)

#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; int k,fibo[100],f[10

原创 HDU 1824 Let's go home (2-SAT)

思路:用op數組記錄隊員i的對立編號,如op[0]=1,op[1]=op[2]=0;,然後用2-SAT來判斷 #include <iostream> #include <cstdio> #include <cstring> using

原创 HDU 3062 Party (2-SAT)

題意:給你N對夫妻,從夫妻之間不會矛盾,但非夫妻可能產生矛盾,問能否從每對夫妻之中選出一個,這N個人互不矛盾。 思路:很裸的2-SAT,今天也是第一次接觸,還不是很明白,打算刷下題再瞭解一下 #include <iostream> #i

原创 組合數學-母函數

1.整數劃分 類似於給你各種重量的砝碼,問有多少種方法稱出重量W,這裏轉化爲給你1,2,3...n種數,問如何組合可以得到n。 對於重量爲1的砝碼(用整數1):(x^0+x^1+x^2+...+x^n) 對於重量爲2的砝碼(用整數2):(

原创 Codeforces 300 C Beautiful Numbers (Locas)

思路:首先注意到對於長度爲N的數字,他各個位數相加最多不會超過b*n,那麼就可以枚舉小於等於b*n中由a和b組成的good數gnum,設a*x+b*y=gnum,x和y爲所求n位數中a的個數和b的個數,並且x+y=n這樣,就可以解得x=(

原创 UVALive 5026 (樹的重心和直徑)

題目鏈接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3027 題意:給你N

原创 ZOJ 3686 A Simple Tree Problem (線段樹)

題意類似於POJ3321,但是這裏每次操作的時候更新了子樹中的所有節點值,而且每次查詢需要進行延遲標記,所以如果跟POJ3321一樣用樹狀數組不適合,這裏用線段樹來寫,開始先dfs一邊用時間戳進行節點標記。 #include <iost

原创 NEFU CF 練習賽 45

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22283#overview A題CF69A、B題CF69B沒什麼好說了,水題了。 C題CF69C 噁心的模擬.....每次某個玩

原创 codeforces Synchrophasotron (dfs)

比賽時深搜就是寫不明白啊,太菜了...... 記錄從源點出發的最大流量和最小流量,再記錄到匯點的最大流量和最小流量 然後枚舉最小流量到最大流量,若當前流量滿足到達n點條件,那麼就輸出minf和maxcost。 #include <iost

原创 HDU 1536 (博弈SG)

直接套模板的水題..... #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; int k,