集訓隊作業2018 GAME(並查集)

2021-09-01 02:41:20 字數 1142 閱讀 4262

題意:

題解:把這個dp式子給列出來:

f i=

si+max⁡j

f_i = s_i + \max_j \

fi​=si

​+jmax

​把這個字尾max

⁡\max

max記為m

mm的話,每次就是m

=max

⁡m=\max\-m\}

m=max,考慮對於初始的每個m

mm都維護一下,發現是條折線,維護一下這個折線,每次可以把小的一半合併到另一半去,於是就可以在o(∣

sum∣

)o(|sum|)

o(∣sum

∣)的時間內做完了(感覺這道題可以o(n

log⁡n)

o(n \log n)

o(nlogn)

做,懶得想了)。

#include

using

namespace std;

const

int rlen=

1<<18|

1;inline

charnc(

)inline

intrd()

while

(isdigit

(ch)

)return i*f;

}const

int n=

1e6+50;

int n,q,a[n]

,s[n]

,anc[n]

;int k,b,l,r;

inline

intga

(int x)

inline

intmerge

(int x,

int y)

inline

intsolve()

intmain()

continue;}

if((x-l)

<=

(r-x)

)else

} q=rd(

);while

(q--

)}

集訓隊作業2018 喂鴿子

設 f n 表示有 n 只鴿子,每次等概率選乙隻喂,期望餵飽第一只鴿子的時間,f 表示有 n 只鴿子,已經喂了 m 次,此時這 n 只鴿子中沒有鴿子被餵飽的概率。ans sum n 1 f i f n sum sum f frac sum f sum frac 注意到有 dfrac n sum x ...

集訓隊作業2018 小Z的禮物

小水題。題意就是不斷隨機放乙個 1 times 2 骨牌,然後取走裡面的東西。求期望多少次取走所有的東西。然後有一維很小。首先顯然 minmax 容斥,將最後取走轉化為欽定一些物品,求第乙個取走的期望。然後顯然第乙個取走的期望只和剩下能蓋到物品的骨牌數有關。乙個骨牌能蓋到物品只和相鄰的兩個格仔是否欽...

集訓隊作業2018 樹(點分治 K短路)

題解 最近學數分學到意識模糊,做到oi題冷靜一下。聯通塊強制選根,然後用dfs序轉化為乙個路徑然後就是做k短路了。用點分治即可在圖大小為o n log n o n log n o nlogn 的圖上做k短路,時間複雜度o n log 2n k log k o n log 2 n k log k o ...