總結
今天的暴力打的還行
T1 的卷積最佳化 dp 是真不會。
T2 正解如果花時間是好想的,賽時在做 t3。
t3 會了性質,但是不會維護。
t4 亂搞。
題解
monster
暴力 dp 顯然,考慮最佳化。
設 \(f_{i,j}\) 表示選了 \(i\) 個非負整數,和為 \(j\) 的最大的 \(\sum s\),直接做揹包是 \(\mathcal O(nm^2)\) 的。
此時 dp 狀態和 \(a\) 無關。發現我們只需求最終的 \(f_{n,*}\),那麼在 \(f_{i,*}\) 的基礎上有
- \(\mathcal O(m^2)\) 暴力加入一個元素,即 \(f_{i+1,j}=\max(f_{i,k}+s_{j-k})\),轉移到 \(f_{i+1,*}\),暴力 dp 做了 \(n\) 次這個操作。
- \(\mathcal O(m^2)\) 用 \(f_{i,*}\) 和自身做一個 \((\min,+)\) 卷積,即 \(f_{2i,j}=\max(f_{i,k},s_{j-k})\),轉移到 \(f_{2i,*}\)。
path
對於 DAG 的部分分,如果 \(s\) 能到 \(t\),則每一步都貪心選能到 \(t\) 的字典序最小的點。
發現可以直接推廣到不是 DAG 的情況,如果這樣走出了環,就說明存在長度無限大的理想路徑。
即可以在一個每個點都能到達 \(t\) 的環中一直走,且過程中走任意合法出邊都會使得字典序變大。
那麼對於每個 \(t\) 建立反圖,預處理每個點走一條出邊後能到達的後繼。對於一組詢問,處理使得不存在理想路徑的情況。
倍增回答詢問,時間複雜度為 \(\mathcal O(n(n+m)+(n^2+q)\log n)\)。
apple
回答單次詢問。手玩發現判定規律:
先將區間全部 \(-1\),若修改完後可以多次將序列的相鄰兩項 \(-1\) 後使得序列全為 \(0\) 則合法。
區間詢問只需要分奇偶討論,對區間內的 \(b_i\) 加或減 \(b_{l-1}\) 即可。由貪心得,若 \(b_i<0\) 或 \(b_r\neq0\) 則無解,否則有解。
用線段樹分別維護偶數位置和奇數位置的最小值即可。 時間複雜度為 \(\mathcal O(q\log n)\)。
sale
0/1 分數規劃,令 \(p_{i,j}=d_id_j\),二分答案 \(x\),即判定是否存在一個 \(p\),滿足
最大化左邊的式子即可完成 check,使用網路流,關於 \(p\) 跑最大權閉合子圖即可。時間複雜度為 \(\mathcal O(n^4|\log\epsilon|)\),\(\epsilon\) 是二分的精度。