A 水題不說(shuō)
B 預(yù)處理前綴和
C 排序 Logn亂搞
D 動(dòng)規(guī)
一開(kāi)始你需要先處理出一條線段覆蓋[l,r],且右端點(diǎn)恰好在r上的最小代價(jià)。這一步是O(n,m)。
然后dp[i][j]代表前i個(gè)hole修復(fù)j個(gè)的代價(jià)。
dp[i][j] = min(dp[i-1][j], dp[p][j - (i - p)] + cost[p+1, i]);
E 真亂搞
首先, ( a + b ) % m = m - 1 等價(jià)于 a + b = m - 1
(a + b) % m = m - 2 等價(jià)于 a + b = m - 2 || a + b = m*2 - 2
以此類推。。(m ^ 2) 會(huì)超時(shí),咱們可以逐個(gè)數(shù)字搞
對(duì)于數(shù)字 m - 1 , 一定先和 0 搞(得 m - 1), 然后 m - 1 對(duì)搞 (得 m - 2)
對(duì)于數(shù)字 m - 2 , 一定先和 1 搞(得 m - 1), 然后和 0 搞 (得 m - 2), 然后和 m - 1搞(得 m - 3) 然后 m - 2對(duì)搞(得 m - 4)
。。。(召喚徐嘉大神傳授亂搞算法)。。。
對(duì)于數(shù)字 m - i, 一定依次和 i - 1 .... 0 搞, 然后 m - 1 .... i 搞
其實(shí)都是從右向左搞,如果可以直接略過(guò)值為0的數(shù)字,那么就會(huì)優(yōu)化到O(m)。
這個(gè)可以用并查集維護(hù)都是“0”的線段。
posted on 2013-05-31 20:48
西月弦 閱讀(396)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
codeforces