bnds 8.27

你说得太对辣發表於2024-08-28

P3120

樸素dp

\(dp_{i, j}\) 表示從 \((1, 1)\) 出發到 \((i, j)\) 的方案數,有 \(O(rc)\) 的轉移,總時間複雜度 \(O(r^2c^2)\),透過不了。

最佳化

\(sums\)\((1, 1)\)\((i - 1, j - 1)\) 的方案數和,\(sumd\)\((1, 1)\)\((i - 1, j - 1)\) 中,最後一個顏色為 \(a[i][j]\) 的方案數和,\(dp_{i, j}\) 即為 \(sums - sumd\)

可以在列舉 \(j\) 的時候,把上一列的資訊 \(O(r)\) 維護一下,時間複雜度 \(O(r^2 c)\)

再最佳化

艹,十一 oj 過不了,因此在進行最佳化,因為這個轉移限制很多,形式類似 cdq 分治,所以考慮對行進行分治,然後列舉列,考慮 \([L, mid)\)\((mid, R]\) 的影響,同樣用桶處理,再加上即可。

注意這題的分治順序與正常的 cdq 分治不同,因為 \([L, mid)\)\((mid, R]\) 有很大影響,所以先處理中間再處理下面。

P3121

ac 自動機,再開個棧標記一下。