7/2
AT_abc217_f *提高+/省選-
\(g_{i, j}\) 表示 \(i, j\) 是否相連,設 \(f_{i, j}\) 為把 \([i, j]\) 消去的方案數。
如果 \(g_{i, j} = 1\):\(f_{i, j} \gets f_{i + 1, j - 1}\)。
對於一般情況,不難想到列舉中轉點:
可以預設左右各自的消去順序已經確定,只要考慮如何分配即可。
但是這樣是不對的,對於 ()()()...
的情況會重複計算,因此強制讓 \(i, k\) 匹配即可。
P3607 [USACO17JAN] Subsequence Reversal P *省選/NOI-
\(f_{i, j, L, R}\) 表示 \([i, j]\) 段,值域為 \([L, R]\) 的最大長度。
- 小值域到大值域:\(f_{i, j, L, R} \gets \max \bigg(f_{i, j, L + 1, R}, f_{i, j, L, R - 1}\bigg)\)。
- 小區間到大區間:\(f_{i, j, L, R} \gets \max \cases{ f_{i + 1 , j, L, R} + [a_i = L] \\ f_{i, j - 1, L, R} + [a_r = R]}\)。
考慮所謂翻轉操作:
1 6 2 3 4 3 5 3 4
^ ^ ^ ^
| +-+ |
+-------------+
翻轉序列兩側可以兩兩匹配,正好符合區間 dp 的步驟。
嘗試翻轉左右兩端元素:\(f_{i, j, L, R} \gets f_{i + 1, j - 1, L, R} + [a_i = R] + [a_j = L]\)。
CF1922F *2500
狀態很好想,之前是因為轉移成環所以沒補,結果發現也可以沒環。
\(f_{l, r, x}\) 表示把 \([l, r]\) 推平成 \(x\) 的最小代價。
\(g_{l, r, x}\) 表示 \([l, r]\) 中不含 \(x\) 的最小代價。
AT_abc328_g *提高+/省選−
從 \(1 \sim n\) 依次列舉 \(a_i\) 的位置。
設當前 \(b\) 已經被填的集合為 \(S\),記 \(f_{S}\) 表示集合為 \(S\) 時的最小花費。
考慮 \(f_{S}\) 怎麼去更新後續節點。
設 \(l = \vert S\vert + 1\),則 \(1 \sim l - 1\) 已經填完了,接下來要填的一定是 \(l\sim r\) 的連續一段。
列舉 \(r\),從 \(b\) 的 \(p\) 位置開始填(\([p, p + len)\) 都不能被填過):
AT_abc223_g *提高+/省選−
直接用最大匹配轉移比較複雜,樹是二分圖:最大匹配 = 點數 - 最大獨立集。
也就是求滿足下列條件的點數:
剩下的問題即與 CF1984E 相同。
第一遍掃描求出 \(f_{x, 0/1}\) 表示在以 \(x\) 為根的子樹中選/不選 \(x\) 的最大獨立集:\(\begin{cases}f_{x, 0} = \sum \max(f_{y, 0}, f_{y, 1})\\f_{x, 1} = \sum f_{y, 0}\end{cases}\)。
第二遍掃描求出 \(g_{x, 0/1}\) 表示選/不選 \(x\) 的最大獨立集:\(\begin{cases}g_{x, 0} = \max\bigg(g_{fa, 1}, f_{x, 0} + g_{fa, 0} - \max(f_{x, 0}, f_{x, 1})\bigg) \\ g_{x, 1} = f_{x, 1} + g_{fa, 0} - \max(f_{x, 0}, f_{x, 1}) \end{cases}\)。
7/1
摸底考。打得一坨還有 rk9,結果全是初中生。。upd:全是小學生。
F:離散化,建權值線段樹。每個節點記錄:
- \(cnt\):當前區間有多少個數。
- \(s_i\):當前區間內的座標模 \(5\) 相同的數之和。
上傳子樹資訊:
G:暴力 + 二分,喜提全場唯一 40 pts。
從下至上掃描,列舉哪一種顏色不選,此時所選區間的矩陣已經確定。
還要考慮沒有上邊界的點,列舉每一對顏色相同的相鄰點作為左右邊界。
H:初中✌泰牛。
把字串補成等長,少的部分用 #
補齊,預設 #
的字典序小於 a
。
對字符集做一個對映:\(\# \to 0,\quad a\sim z\to 1 \sim 26,\quad ? \to 27\)。
預處理 \(g_{x, y, z, a, b}\) 表示 \(s_{1} = x,\ s_{2} = y,\ s_3 = z\) 且 \(x, y\) 的大小關係位 \(a\),\(y, z\) 大小關係為 \(b\) 是的方案數。
其中大小關係 \(\text {cmp}(x, y) = \begin{cases} 0 & x < 1\\ 1 & x = y \\2&x > y \end{cases}\)。
設 \(g_{i, 0/1, 0/1}\) 表示前 \(i\) 位 \(s_1\) 和 \(s_2\) 的字典序大小為 \(0/1\)(\(0\) 為相等,\(1\) 為 \(s_1 < s_2\)), \(s_2\) 和 \(s_3\) 的字典序大小為 \(0/1\) 時的方案。
設 \(s_{1, i} = A,\ s_{2, i} = B,\ s_{3, i} = C\),列舉大其小關係 \(x, y\)。
- \(a\) 為 \(0\) 則 \(x\) 不為 \(2\),同理 \(b\) 為 \(0\) 則 \(y\) 不為 \(2\)。
- 若 \(a\) 為 \(1\) 或 \(x\) 為 \(0\),則 \(j\) 為 \(1\),同理若 \(b\) 為 \(1\) 或 \(y\) 為 \(0\),則 \(k\) 為 \(1\)。
CF1840D *1400
最大值最小,二分答案。首先對 \(a\) 排序,選的點一定在 \(a_1 \sim a_n\) 之間,否則不優。
設當前答案為 \(d\),選一個點能覆蓋 \(2d\) 的區間,看最後點數是否 \(\le3\)。
CF1833G *1800
很直白的題,葉子的刪邊方式是唯一的,自下而上模擬即可。
CF476D *1900
所有數都除 \(k\) 後即找 \(n\) 個兩兩互素的四元組,且最大值最小。
一個四元組內只能有一個偶數 \(e\),也就是必須消耗 \(3\) 個奇數。
不妨猜想每個組都形如 \(\{e - 1,\ e,\ e + 1,\ e + 3\}\),證明他們兩兩互素。
-
\(e + 1 \not\perp e + 3\)。
如果存在 \(d > 1\) 使得 \(d \mid e + 1\) 且 \(d \mid e + 3\),則 \(d \mid (e + 3) - (e + 1)\),矛盾。
同理可證 \(e - 1 \not\perp e + 3\) 和 \(e \not\perp e + 3\)。