直接區間dp複雜度很高
限制相同,借鑑插頭dp思路從左向右儲存插頭。
定義\(f(i,j,k)\)為i點存在j個插頭還有k個可建插頭,k限制了總數。
列舉i為多少插頭(區間)的右端點,i+1新增多少插頭。
形式為\(f(i,j,k)\times \binom\binom -> f(i+1,j+a-b,k-a)\)
同種顏色點很少,列舉其中兩點x y,令dep[x]>dep[y]
分類討論不合法的點對分布在哪
y是x的祖先。(y除x方向子樹)和(x子樹)
非祖孫關係。(x子樹)和(y子樹)
把路徑a->b,看成點對(a,b),座標系二維表示,用dfs序找出區間
那麼對於x y來說不合法的路徑就是一些矩形。
對於所有x y的矩形求並,就是所有不合法路徑。
取反後,(i,i)這種點對單算,其他/2。
掃瞄線+線段樹求矩形面積並即可。
答案等同於每個點被經過》=k次的路徑數之和
設當前考慮點為(x,y)
路徑拆成三個部分(都不經過障礙):
\(a[i]:(0,0)-i->(x,y)\),第一次到達。
\(c[i]:(x,y)-i->(x,y)\),自環且內部無自身自環
\(b[i]:(x,y)-i->(?,?)\),隨便走
a b c都可以dp得到,然後對c做揹包dp,處理出i步走k-1個自環的方案數。
三個部分卷在一起就是答案。
省選模擬 19 09 11
ps.博主趁資訊課摸魚考的暴零模擬 看門人憑感覺就知道是長鏈剖分,將路徑查分一下,dis u di sv 2 dis lc adis u dis v 2 dis disu disv 2 disl ca 維護fu,if fu,i 表示u的子樹,深度為 i 的點的 dis disdi s最大值 考慮如何...
省選模擬96
容易發現當 k 3 時無解。然後容易證明當 k 3 時,只有 m 3 才是有解的。然後直接做不好做,考慮欽定然後容斥出合法方案。對於 k 3 列舉乙個點,然後計算另乙個的方案數。其他情況類似,欽定滿足條件的角,然後容斥。然後對於每乙個 o n 的式子用組合恒等式大力化簡就可以做到 o 1 了。考慮每...
省選模擬86
首先考慮基礎的dp定義,那麼發現轉移需要的係數只和dp是奇數的點的個數有關,所以將這個東西記錄在dp狀態中就行了。然後推一下dp轉移,發現轉移係數和奇數的點的個數沒有關係,只與是否存在這樣的點有關,所以用01來記錄就可以了。考慮用總方案減去不合法的方案,也就是1號點能到達的點和2號點能到達的點沒有交...