2019-2020 ICPC, Asia Jakarta Regional Contest (Online Mirror, ICPC Rules, Teams Preferred)
- easy: ACEGHK
- medium-easy: BJL
- medium: D
- ?????: I
A.
B.
C.
- 對 \(R[],C[]\) 分別按奇偶性分段。
- 網!
D.
- 考慮 check 一個串,枚舉右走對應的前綴 pre,下走對應的后綴 suf。
- 把每行反串拼接中間連特殊字符,建 SA,能 match 上 pre 的后綴 rk 是個區間。
- 把每列拼接中間用特殊字符連接,建 SA,能 match 上 suf 的后綴 rk 是個區間。
- 問題轉化為:矩形內數點。
E.
倒着遞推出每個位置的范圍。
F.
樹 hash
G.
- 排名的增量為新來的人里面比 1 號選手厲害的人數。
- 線段樹維護區間最小值。
H.
- 第一種情況是擠在一個矩形內,面積/2即可。
- 第二種情況在不同的矩形,先對每 A > B 的矩形交換 A,B,若兩個矩形分別為 \(a*b,c*d(a<b,c<d)\),那么答案為 \(min(a,b) * min(c,d)\),按 A 排序,枚舉第一維被誰卡住,求后綴極大值。
- 炸精度。
I.
好難。
J.
- 注意到 type 3 最多擺放 50 個。
- \(dp[i][j]\) 表示考慮前 \(i\) 個位置,恰放 \(j\) 個 type 3,type 2 最多能放幾個。
- 枚舉 \(i,j\) 用 type 1,嘗試替換,type 2 即可。
K.
線段樹維護區間矩陣乘。區間修改為交換行和行,列和列。
L.
- 先考慮每條“邊”都要建的 case。
- “邊” & 工人的二分圖,跑匹配?
- 給每類工人建個中間點,最大流,ok,邊少了。
- 生成樹怎么辦?環上怎樣選擇環長 - 1條邊?
- 建一個中間源點限制流向“環上的邊”點流量不超過環長 - 1。最大流為 \(n-1\) 即可。