1. 程式人生 > 其它 >省選模擬賽(IV)

省選模擬賽(IV)

衝刺省選4月2日第四十三場

\(\color{white}{彼黍離離,彼稷之苗。行邁靡靡,中心搖搖。——《詩經·黍離》}\)

\(\color{white}{名之以:故都}\)


\(t2\) 上來直接轉化出錯沉溺在一維 \(dp\)\(2h+\),關鍵是還能過樣例……
\(t3\) 在想高斯消元


B. 樹點購買

\(f[u][0/1]\) 表示子樹內有沒有一個葉節點還未被覆蓋的最優方案,\(g\) 表示方案數
那麼

\[sum=\sum f[v][1] \] \[f[u][0]=min(sum-f[v][1]+f[v][0]) \] \[f[u][1]=min(f[u][0]+a_u,sum) \]

對於方案數,取到最值的轉移都可以加進方案
對於合法轉移,維護 \(op[u][0/1]\)

表示這個點能不能是最優 \(0/1\) 轉移,同樣進行轉移,進行了 \(f[u][0]+a[u]\) 轉移的是答案


C. 艦隊遊戲

\(f[u][i]\) 表示節點 \(u\) 血量為 \(i\) 時到終點的期望
那麼 \(f[u][i]=min(f[1][h]+h-i,\frac{\sum f[v][i-d_v]}{deg}+1)\)
可以發現轉移成環,那麼二分 \(f[1][h]\) 的值看 \(dp\) 出的值是不是更小即可