BZOJ水题计划
| 3306 | 給出一棵帶點(diǎn)權(quán)的有根樹,支持單點(diǎn)修改,換根,詢問x子樹中的權(quán)值最小值. | 直接在DFS序上用線段樹維護(hù)就好了. |
| 3900 | 給出n個數(shù)對,求最小的交換次數(shù),滿足交換后每個數(shù)對相差不超過c | 壓位,用\(f[i]\)表示\(i\)狀態(tài)的數(shù)對滿足條件的最小操作次數(shù),初始時\(f[i]\)如果有解,那么答案至少為操作數(shù)對-1,然后\(f[i]=min(f[j]+f[i\text{^}j])\)修正一下就好了. |
| 3901 | 給定一個\(n*n\)的棋盤(\(n\)為奇數(shù)),每個格子上有數(shù),設(shè)\(X=(n+1)/2\),每次可以將一個\(X*X\)的子棋盤的所有數(shù)乘-1,求所有數(shù)之和的最大值. | 考慮不管子棋盤怎么選,X行X列一定有數(shù)會被選上,考慮\(a[1][i],a[1][X],a[1][i+X]\)的關(guān)系,發(fā)現(xiàn)他們是否被操作的異或值一定為0,因為任意的操作只會包含他們?nèi)齻€點(diǎn)中的其中兩個或零個,然后其他行以及列也有這種關(guān)系,枚舉X行前X個格子的操作情況,得出X行的情況,然后每一行第X列的情況枚舉前\(i\)個格子的情況,顯然這個貢獻(xiàn)單獨(dú)考慮,所以刷個最大值就行.復(fù)雜度\(O(2^XX^2)\) |
| 3920 | 給出一個長度為\(n\)的序列,詢問一個區(qū)間數(shù)字出現(xiàn)次數(shù)第\(k1\)小的第\(k2\)小的數(shù). | 分塊套分塊?神奇的叫法. 把(數(shù)字,數(shù)字出現(xiàn)次數(shù))看成一個二元組,二元組的個數(shù)為\(n\),然后我們用莫隊維護(hù)這個二元組即可,首先數(shù)字出現(xiàn)次數(shù)一個分塊,然后相同出現(xiàn)次數(shù)的數(shù)用個分塊. |
| 3689 | 給出\(n\)個數(shù),兩兩異或可以得到\(n*(n-1)/2\)個值,求前\(k\)小的值. | 額,對于每個數(shù)肯定先找第一小然后第二小... 用個堆維護(hù)一下每個數(shù)當(dāng)前的最小異或值,查詢一個數(shù)第\(k\)小異或值一棵字典樹就行. |
| 4011 | 給出一張有向無環(huán)圖和一條任意邊,求以\(1\)為根的外向樹的個數(shù). | 根據(jù)朱劉算法(???),有向無環(huán)圖的外向樹個數(shù)為除根以外所有點(diǎn)入度的乘積.感覺腦補(bǔ)一下就行,每個點(diǎn)隨便選個fa就可以形成一棵樹...現(xiàn)在多了一條邊,那么減去成環(huán)的方案數(shù)就行.成環(huán)的方案數(shù)應(yīng)該是\(\sum\)所有\(y\)->\(x\)的路徑(設(shè)為\(S\))\(\prod_{x\not\in S}dgree[x]\),在拓?fù)湫蛏螪P就行. |
轉(zhuǎn)載于:https://www.cnblogs.com/CHNJZ/p/10435201.html
總結(jié)
- 上一篇: Coins POJ - 1742(题解)
- 下一篇: 集合的一个小发现