camp day2

C題:3種不一樣顏色的機器人,每種都有大於1000個,在1000*1000的格子上,分佈是給出的,問每一個都走m步以後,每種顏色機器人都走到了同一個格子,不一樣顏色的終點要求不一樣,問有多少種不一樣的走法.
題解:首先咱們考慮容斥, 單獨考慮每一種機器人,而後直接相乘,可是有相同的,咱們再減去a b同樣,c不同, 以及ac bc 而後加上abc. 如今要作的就是1000左右個點,要求走到一個點的方案數(在咱們枚舉要走到哪裏的前提下),要求o(1)的算出來,可是不會作.咱們會作一維的,就是一個組合數.因此咱們用一種方法技巧,計算(x + y, x - y),而後這是獨立的,同時必定會走m步,而後再相乘就行了.
D題:1000個球,每一個球有標號,如今有一個雙端隊列,每次一個球相等機率的往前或者日後放,而後放完以後算 xi > x(i+1)的個數cnt, cnt ^ k 的指望.k是給出的,k~50. 最後輸出指望數*2^n.
題解:先定狀態f[i][0/1][另一端的數是多少] = num, 而後轉移就是看i+1個球放在哪裏,而後更新f[i+1]層, 若是新放的數多了一個逆數,那麼咱們不會只用num來搞出來新的num值,由於他是一個i個不一樣的東西合併出來的一個數.可是咱們用x^k = 一個含斯特靈數的東西, 再換個序,而後須要f加一個[L]的來記錄,就可以作. 公式在紙上推了沒有往上敲QAQ
E題:一個n~1e5的字符串,給出m~1e5個現實xl, xr, yl yr.保證長度同樣,意思是這樣兩段徹底相等.如今每一個位置只能填26個不一樣的東西,問有多少種合法的狀況.
題解:首先是分段辦法1:n個段長爲sqrt(n)的,而後每次大段和剩下的小數字暴力,而後剩下了一堆段的關係.而後對於一個並查集中的段,統一for一下.
分段方法2:每次段都是2的冪次,從大往小走,每一層建一個樹,就足夠描述信息了,也就是n條邊.每次都帶着n條邊往下一層走,往下一層走以前再跑出一個樹.web

本文分享 CSDN - ruclion。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。svg

相關文章
相關標籤/搜索