省選模擬101

A. 石子游戲

  容易發現答案大約是log級別的,然後可以考慮一個暴力dp,記錄當前一共選擇了幾個。

  發現dp的轉移順序並不是必要的,而重複的轉移也一定不優,所以可以考慮將所有狀態放到一起轉移,然後就可以fwt來優化了。

  fwt的過程中不用每次都轉化回去,直接用點值展開一項就可以判斷有沒有解。

 

B. 函數

  是一種叫做powerful number的奇怪東西的模板題。

  定義就是所有質因子的冪次不小於2。然後令$f=g*h$,其中$g(x)=x^k$,那麼由於$h=f/g$,所以h也是積性函數,展開f在質數處的取值可以的得到h在非power number處的取值一定爲0。

  然後問題就是求出來h在所有powerful number處的取值,歸納可以得到$h(x)=x^k-x^{2k}$。

  由於符合條件的數的個數很少,所以暴力搜索出來然後對於每個都計算貢獻就行了。

 

C. 畫

  假如不存在限制,那麼找到所有數最高的二進制位,將所有數根據這一位爲0或1分成兩組。然後分情況討論:

  1.若爲1的一組這一位全部填1,那麼向下遞歸。

  2.若爲1的一組有任意一個數這一位不是1,那麼其他數只要滿足了最高位的限制,低位不管怎麼填都可以由這個數調整。

  所以第一部分向下遞歸,第二部分暴力dp統計答案。

  考慮限制,就整個容斥,欽定不滿足的邊集統計貢獻。由於邊集很大,所以考慮欽定整個點集相同,然後計算邊集的方案數進行容斥。邊集的方案數可以通過減去不合法的得到。

  然後用dp將這些點集的連通塊拼到一起即可。

  考慮這個dp,發現我們要計算貢獻只需要知道大小爲奇數的連通塊的$limit$最小的點,所以將所有這樣的點壓到狀態裏。

  爲了計數方便,我們欽定轉移必須包含剩餘集合中$limit$最小的點。然後暴力進行轉移。複雜度看似很迷,實際上還是正確的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章