省選前題目總結

2022-04-30 19:24:11 字數 1580 閱讀 4928

目錄先寫幾句廢話

oi生涯就要結束了

!@#$%^&*()

所以不寫廢話了

4.5號第一輪省選,之前準備小高考耽誤了一段時間,因此馬上得抓緊了

感覺現在題目不太能做得動,所以得多做題

做完題要總結

提高效率

其實以上還是廢話

下面放上做的題目的總結,模擬賽的總結另開一篇寫吧

solution:從根開始,每次找到乙個當前點的後代,然後把這個後代的子樹扒掉。扒掉的方法還是找到這個後代的乙個後代,把其子樹扒掉,這樣不停找下去。每次找後代複雜度 \(o(\log n)\),方法就是維護乙個點集,表示當前還沒有被拔掉的點,然後在裡面二分,找到某個位置,使得當前點不在這個點左側所有點組成的連通塊上,而加進這個點之後就在了,由於根節點一定沒有被扒掉,所以不可能是左側點組成連通塊是它的子樹,只能是加進去這個點為它的後代。這樣每個點最多被找一次(找完就會扒掉它),總複雜度 \(o(n\log n)\)。

solution:這題分為三個問。第一問答案就是奇數度數點的個數除以2,顯然這樣的點有偶數個,可以兩兩連起來,然後留下兩個點度數為奇數,其它每個點度數均為偶數,根據一筆畫原理,可以一筆畫出來,然後把加上的邊拆掉,剩下就是路徑數,正好是奇數度數點個數除以2。第二問顯然二分答案,然後樹形 \(\text\),要求路徑數量最小,那麼每個子樹路徑數量顯然也要最小,令 \(f[i]\) 表示 \(i\) 為根的子樹中路徑數量最小時,\(i\) 這個點到 \(fa[i]\) 所在路徑的長度最小值,也就是這個子樹內部唯一延伸出來的路徑的長度,轉移顯然。第三問依舊是 \(\text\),首先基礎狀態是 \(f[i][j]\) 表示 \(i\) 這個點的子樹中滿足前兩個任務的時候, 剩下來那條路徑的長度為 \(j\) 的方案數,轉移時可以暴力列舉匹配方案,因為度數小,所以可以通過 \(n \leq 1000\) 的點;然後擴充套件該演算法,首先對樹進行長鏈剖分,我們發現 \(j\) 這一維小於等於深度,對 \(j\) 這一維建線段樹,然後兩個問題,乙個是求兩個兒子匹配的方案數,即 \(\sum_ f[a][i]\cdot f[b][j]\),可以列舉 \(i\),然後區間和解決,另乙個是對於 \(x\) 的任意乙個兒子 \(a\),用它延伸出來那條路徑的方案數更新 \(f[x]\) 的線段樹,我們對於非長鏈的兒子暴力列舉鏈長單點修改,對長鏈兒子打標記。

solution:大力推式子,最後式子大概長這樣

\[f(x)=\frac)^}}(1+(k+1)x^-(k+2)x^)

\]分式上面的部分用二項式定理展開後變成$$\sum_\binom(-x)^i$$

下面的部分也可以用廣義二項式定理展開變成$$\sum_\binomxi$$

對著式子敲**,然後最終複雜度\(o(\frac)\)

綜上所述,不知道啥玩意

solution:簡單 \(\text\)

solution:考慮每個1最後的位置,對於乙個1,最後一定是要麼一直向左,要麼被前乙個1卡住,從左到右考慮當前空位的個數,然後算出每個1最後走到**。

寫在省選前

以往我都會對每一場比賽進行很長時間的yy,把各種可能的結果都想了。後來結果出來既不會太糟又不會太好。但是我很久沒有享受過一場比賽了。我寫下那篇退役?再搏一次!結果是沒有寫完,我覺得原因是我在最後的時候還是有點偷懶的。但是我爭取了。我覺得我沒寫完這個結果我可以接受,或者如果我寫完它我可能會很高興吧。但...

寫在省選前

突然發現距離省選只有兩周了,又突然發現自己如果打不好省選就要退役了 那就把剩下的兩周當作最後兩周吧 upd on 2019.9.22 發現自己聯賽之前變得更垃圾了 upd on 2020.6.11 距離省選只有不到10天了。狀態很差,可能還不如csp之前。很有可能就要在這裡停下了,csp前最後一天離...

省選前學習記錄

sum binom 1 i n 0 o n2 m 求乙個模式串集合中有多少個模式串和文字串中的字元沒有交集 保證任意串中不存在相同的字元。可以用容斥,sum sum x y 1 a cap b neq varnothing 關於左側的式子,可以把每個模式串的子串插入到 trie 上,然後對文字串的每...