在下面網址看效果更佳>_<
http://mlz000.github.io/2015/08/07/2015-ACM%E5%A4%9A%E6%A0%A1%E8%AE%AD%E7%BB%83%E7%AC%AC%E4%B8%80%E5%9C%BA/
題外話
這個暑假以前就決定要把這次多校的所有題全補了,中間斷斷續續,總算把第一場的題補全了,鄙視一下頹廢的自己。。。
hdu 5288(1001) OO’s Sequence
Solution
水題,定義兩個數組
Code
hdu 5289(1002) Assignment
Solution
水題,很容易想到先用st表預處理區間最大最小值,然後枚舉左端點,二分右端點檢查是否滿足即可。複雜度
Code
hdu 5290(1003) Bombing plan
Solution
這題比賽時候沒時間看,其實賽後發現並不是很難。看數據範圍很容易往O(NW)上去想。於是不難想到dp
定義兩個數組
(1)不取i點,則
f[i][j]=f[son][j+1]+∑l是i的其他孩子min(f[l][0],f[l][1],...,f[l][j+1],g[l][0],g[l][1],...,g[l][j−1]) g[i][j]=g[son][j−1]+∑l是i的其他孩子min(f[l][0],f[l][1],...,f[l][j],g[l][0],g[l][1],...,g[l][j−1]) - (2)取i點則
f[i][w[i]]=1+∑l是i的孩子min(f[l][0],f[l][1],...,f[l][w[i]+1],g[l][0],g[l][1],...,g[l][w[i]−1])
很容易想到用兩個數組ff,gg 分別維護f,g 的最小值,複雜度O(NW) ,具體實現的時候注意下邊界0 的情況即可。仔細想想,轉移方程還是比較容易得到的
Code
hdu 5291(1004) Candy Distribution
Solution
考慮最暴力的dp,
Code
hdu 5292(1005) Pocket Cube
Solution
這個題就是個找規律的題,看了題解纔會做QAQ。。。
Code
hdu 5293(1006) Tree chain problem
Solution
比賽時沒看,賽後發現是個很裸的題= =。
考慮dp,
容易想到有兩種轉移
* (1)
* (2)
鏈上求和很容易想到樹鏈剖分,複雜度
Code
hdu 5294(1007) Tricks Device
Solution
水題,最短路尋找道路邊數最少的最短路,總邊數減去最少條數爲第二個問答案。
把最短路圖抽出來建流量爲1的邊,最小割即爲第一問答案。
Code
hdu 5295(1008) Unstable
Solution
平幾題,給出中點很容易想到倍長的事情。如圖,倍長
不妨固定BC,
由於
Code
hdu 5296(1009) Annoying problem
Solution
比賽時自己蠢一直沒想出來,想過dfs序但沒細想= =
其實每次插入的時候找兩個dfs序最接近的點
找不到這樣的點時直接取最大和最小dfs序的兩個點即可
爲什麼這樣呢,給定固定點把它們連通得到的樹一定是固定的。這樣選點的目的是爲了不讓邊重複。
Code
hdu 5297(1010) Y sequence
Solution
這個題比賽時我寫的二分,一直T,= =非常蛋疼。賽後看題解和問別人才知道,可以迭代,迭代次數不會太多。
首先考慮反函數
我們要求第
我們每次只加了缺少的答案數,所以不可能超過正確答案。
迭代還是玄學啊。。。。新姿勢get
Code
hdu 5298(1011) Solid Geometry Homework
Solution
比賽時以爲是大型計算幾何看都沒看,賽後發現這是個SB題,把點帶到平面和球面方程中,確定點在哪一邊把結果異或一下考慮染色即可。
Code
hdu 5299(1012) Circles Game
Solution
自己太弱,不會掃描線,賽後補了下姿勢。。
很容易想到掃描線處理圓,把圓變成樹,然後就變成了經典博弈問題樹上刪邊問題,具體可以看09年國家集訓隊論文<<組合遊戲略述——淺談SG遊戲的若干拓展及變形>>。
結論是葉子節點
Code
完結撒花!
繼續補題!>_<