題目中給出了奇怪的k個點,滿足刪掉這k個點之後無環。
那麼,這k個點內部一定存在拓撲序,其餘的點內部一定也存在拓撲序。
可以發現,只要刪掉原圖中所有的三元環就可以滿足條件。
所以說可以發現,對於剩餘的點,必然在另外k個點的拓撲序中存在分界點,滿足分界點之前都從k個點連向這個點,後面相反。
那麼只要分別求出來兩邊的拓撲序簡單dp即可。
考慮每一對相同的子串的貢獻,那麼只要乙個串包含了這一對子串並且字首是一對子串之一,那麼就是就有1的貢獻。
所以直接建出來sam,找出所有相同的子串,簡單維護即可。
首先操作順序不影響結果。
不難發現,對於乙個位置操作,對於後面造成的影響是下乙個位置+1,前面第乙個0變成1,第乙個0後面的數-1,自己位置-1。
那麼可以發現0的位置變化只有可能是向前移動1或者去掉乙個0,這個東西簡單維護就行了。
比較好的做法是用乙個棧來維護,然而我考場打的噁心了被卡常,雖然我存陣列用的char爆了。
省選模擬 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號點能到達的點沒有交...