聯合省選 2021 題解

2022-10-08 20:51:23 字數 1030 閱讀 9941

把所有數不管正面反面扔到乙個序列中排序,保留哪些數不好考慮,但是刪掉一定是一段字首和字尾。被刪的數需要滿足條件:

我們希望保留區間長度盡可能小,雙指標維護即可。

欽定 \(b_ = b_=0\),容易構造出不滿足值域限制的 \(a\)。現在要給每個位置加上乙個數,我們考慮如何操作才能保證四個位置的和不變,顯然四個位置的變化量分別是 \(x,-x,x,-x\)。這可以將貢獻拆分到每行每列,每行中相鄰兩數變化量互為相反數,列同理。通過將棋盤黑白染色,對行來說白色為變化量為正,黑色變化量為負,列反過來,就可以將問題轉化為差分約束。

記 \(h(i,x)\) 表示對於 \(f(i,g)\) 來說 \(x\) 有貢獻。討論之後發現 \(h(i,x)\) 等價於 \(x\) 可以不經過 \([1,x)\) 中的點走到 \(i\)。這個描述很類似 floyd 的轉移過程,所以我們真的用 floyd 求出兩個點最早是在加入哪條邊之後連通,做字尾和即可得到答案。

暴力 dp \(f_\) 表示考慮集合 \(s\) 中的隊伍,總和 \(i\),上乙個隊伍是 \(j\),上乙個 \(b\) 是 \(k\)。但是我們只關心排名,而不關心 \(b\) 的具體取值,針對這一點可以想到通過某種方式確定 \(\sum b\) 的最小可能取值,可通過 \(a_i+b_i \le a_+b_\) 列出不等式求解。然後我們將貢獻差分並提前計算,即可省下一維狀態。

建出支配樹,發現如果乙個點的受支配集改變,其子樹中結點的受支配集也會改變。因此我們只需找深度盡量小的結點。考慮乙個結點什麼時候不合法,那麼一定是多了一條繞過其在支配樹上父親的路徑。考慮乙個結點 \(u\),則存在路徑 \(1\to x\to y\to u\) 不經過 \(fa_u\)。前半在 \(x\) 的祖先鏈上打標記,後半在列舉 \(u\) 在反圖上求出不經過 \(u\) 能到達哪些點。

列舉 \(a_k\),把取模後序列記為 \(\\),則對於 \(b_i+b_j\gt a_k\) 的,我們必然選擇最大兩個數;否則和都在 \(a_k\) 以內,雙指標。複雜度 \(o(n^2\log n)\)。加入剪枝:從大到小列舉當 \(a_k\),當 \(ans\ge a_k\) 是跳出。然後複雜度就對了。很厲害。

江蘇2021聯合省選遊記

幸好是初三來體驗一下聯合省選,某些高一學長說要是進不了隊就要退役了。周五簽到欸,可以摸掉一天文化課了。然而怎麼感覺打板子比文化課還苦逼呢。上午就乘車到南京了,在住的地方寫板子寫到下午四點乘車去南外。去的時候人好多啊,一去就看到dxm了,那djq還會遠嗎 拿完參賽證然後居然可以提前開始試機。貌似提供s...

聯合省選 2020A 組合數問題 題解

這題算是我斯特林數的入門題,順便安利大佬的部落格,我是從這篇部落格中學的斯特林數。begin sum n f k times x k times dbinom n k sum n m right x k dbinom nk texttt sum n m ii j endk right x k dbi...

省選模擬104 題解

a.簽到題 把每個點向它右側比他大的第乙個點之間連邊,如果沒有那麼向 root 連邊。那麼可以構成一棵樹。特判一些情況之後,可以認為問題就是 1.給某節點和它的所有兒子節點權值加上乙個值。2.詢問一條路徑的權值和。首先考慮如果只詢問單點的維護方法,其實就是打乙個標記表示給整個兒子集合都加上了若干權值...