首先應從題目條件中得到1號點一定在乙個環中,並且有且僅有乙個環。
容易證明r(1)的計算公式:
其中,d(i)表示點i到1號點的距離,len表示環的長度。
利用該公式,可以證明如果修改某個點的後繼,一定是把它的後繼改為1號:
首先應明確,由於k<1,公式中的的d(i)、len均越小越好。
點x不在環上,則修改x的後繼後,公式中len不變,而對所有經過x到達1號點的結點y,d(y)減小。為了讓d(y)減到最小,應把x的後繼改為1。
x在環上,用next[x]表示x的後繼,則把x的後繼改為next[next[x]]後,len減小,且x及其之前的點的的d值減小,故r(1)增大。由於環的長度減小了,而x仍在環中,通過對環的長度歸納,可以證明x的後繼一定改為1。
可以列舉環的斷點,再dp一下。狀態為:f[i][j][k],表示i到1的距離為j時,以i為根的子樹上,修改至多k個點的後繼所能實現的最大貢獻。有一點要注意,每次都應該把k從0算到m,不能只算到子節點的個數。我在這兒除錯了好久……
problem: transpoint execution status score time [sec] memory [kb]
1 normal 10.000 0.015 4528
2 normal 10.000 0.086 4528
3 normal 10.000 0.019 4528
4 normal 10.000 0.013 4524
5 normal 10.000 0.051 4528
6 normal 10.000 0.070 4528
7 normal 10.000 0.030 4528
8 normal 10.000 0.101 4524
9 normal 10.000 0.217 4532
10 normal 10.000 0.045 4528
NOI2008 設計路線 design
題目及題解可以參見byv大牛的,很詳細 自己的一些想法 實現的時候不需要求第一問的解是多少,只需要找到第乙個a i,b 0的b,然後前面的a i,b1 b1都是等於0的。所以這個定義 b的方案數就是 b的方案數。要熟悉這種利用輔助遞推,字首乘積,字尾乘積,以及固定乙個指標,劃另外乙個為1維的題。至於...
NOI2008 志願者招聘
文化課 競賽雙廢物又來水題解了。把下界限制轉化為一條邊的流量下界,這樣就是最小費用上下界最大流。加入幾個新值,其條件正好為 ge 0 將其當做一條流量,這樣不等式就變成了等式,我們可以利用流量守恆,用點的流滿 leftrightarrow 等式成立,這樣就變成了乙個最小費用最大流,去掉了上下界的影響...
NOI 2008 志願者招募
考慮用 p i 表示第 i 天實際招收的人數,我們假設我們有三種志願者,分別是 1 to 2,1 to 3 2 to 3 我們招手的人數分別是 b 1,b 2,b 3 那麼第一天實際人數就是 p 1 b 1 b 2 geq a 1 同理我們把三個不等式寫出來 b 1 b 2 ge a 1 b 1 b...