模擬111 題解


A. 物理課

發現每次反彈之后移動的距離是上一次的$d^2$倍。

計算出第一次反彈之前移動的距離的答案$k$,

總的答案即$\sum \limits_{i=0}^{inf}d^{2*i}*k$。

發現這個東西就是一個等比數列求和。

設答案為$s$,那么有$s=\sum \limits_{i=0}^{inf}d^{2*i}*k$

$d^2s=\sum \limits_{i=1}^{inf}d^{2*i}*k$

作差可得$(1-d^2)s=k$,即$s=\frac{k}{1-d^2}$。

這個東西似乎是生成函數中一個基本的式子。

 

 

 

B. 數學課

對於一個數$x$,如果它在集合$A$中,

那么$2*x$一定在集合$B$,由此又可得$4*x$也在集合$A$中。

所以只需要考慮每個奇數$x$在哪個集合中,決定了$x*2^k$在哪個集合中。

很多的奇數是等價的,也就是說它們決定的元素個數相同。

所以可以處理出每個等價類中有多少個元素,

對於每個奇數元素,如果它出現在集合A中,那么會對集合A貢獻a個元素。

如果它出現在集合B中,那么會對集合A貢獻b個元素。

可以將每個奇數元素視作一個物品,然后可以$O(n^2)$暴力背包$dp$。

然后發現本題存在一個特殊性質,即$abs(a-b)<=1$

因為每個物品必須選其中之一,不妨直接選入較小的一個。

如果二者貢獻的答案相同即等價,可以直接給答案$*2$。

因為差不超過$1$,可以直接用組合數算出選哪幾個可以構成合法的方案。

組合數的級別很大,但是模數提示可以用$lucas$定理,所以就解決了。

 

 

 

C. 地理課

維護動態聯通塊大小,可以離線。

部分分提示使用並查集,所以可以想到一個類似線段樹分治的過程。

即將每條邊加入它存在的區間的線段樹對應節點中。

之后不斷遞歸線段樹,開始遞歸時將數組記錄並加入邊,遞歸結束后將數組還原表示刪邊。

當遞歸到葉子節點,即貢獻統計完畢,可以直接輸出答案。

因為要進行還原操作,使用按秩合並並查集。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM