省選模擬5

2022-03-26 20:19:15 字數 695 閱讀 6948

每塊石頭都必須要踩一次,那麼不難發現讓最便宜的青蛙踩盡量多的距離超過d的石頭,而其他青蛙盡量跳,跳不過去了直接從1跳到n一定最優。

所以只要判斷出最多可以讓多少只青蛙跳過去即可,二分即可。

然而沒有開long long ,100->0。

暴力將伯努利數代入即可。

前兩天做了一道插值讓我一直以為這道題是插值,然而後面有乙個式子是關於$id$的多項式,然而d是乙個常數,所以我以為這東西不是多項式。

然而這東西確實是多項式。。。可以看作多於原多項式的拉伸,所以暴力插值也是可以ac的。

考場最後試圖推伯努利數,然而忘了計算自然數冪和的公式,所以沒有推出來。

乙個奇怪的思路:

建出字尾自動機,處理出每個節點的lastpos,即最後一次出現的位置。那麼當每個節點lastpos更新時,就可以用上乙個lastpos更新當前位置的答案,可以用可持久化線段數實現這個更新。

顯然新建乙個節點時會將一條祖先鏈的lastpos修改為當前長度,然而暴力做的複雜度可以被卡成$o(n)$,所以不是很可行。

考慮使用lct優化這個過程。若我們將當前節點access,那麼就會將該點到根的鏈拉到同一條重鏈中,這啟示我們可以保證一條重鏈中的lastpos相同。

對於lastpos相同的節點,我們只需要關注長度的最大值,所以在splay中維護這個資訊即可,在access過程中,將經過的重鏈對應的ans修改即可。

實現起來細節很多。

省選模擬5 題解

因為每個青蛙都可以一步跳到終點。所以二分幾個青蛙可以無消耗跳到終點,只要讓最貴的幾個青蛙跳過去。之後特判一下乙個青蛙都跳不過去的情況就好了。伯努利數練習題。不斷的把自然數冪和用伯努利數展開,順便二項式展開一下就好了。另外分析可知原式可以化為乙個多項式的形式,所以通過插值也可以求出。考慮維護sam中每...

省選模擬5 總結

改題 t3 真的改到自閉。第一眼錯覺是網路流,但是在每個石頭,站不同青蛙時跳躍的代價不同,就不太能了。這題其實和之前noip模擬16的那個青蛙題有點像,只不過這題加了代價。首先乙個性質是 對於乙個青蛙,如果他一心想跳到對面 即不考慮踩光石頭 最優是不花費,要不然只花一次就過去。那麼我們可以看看所有石...

省選模擬測試5

因為只有包含關係和不相交關係,就可以根據包含關係 o n 2 建樹,o n 跑樹形dp 考慮優化建樹,把乙個圓看成乙個正方形然後做掃瞄線,線段樹每個節點維護set,存縱座標在這個區間的正方形的編號 需要判四個角,暴力跳就行了 大多數情況下複雜度 o n log 2n 發現 t n,k nc n 1,...