pku 1014 已做
pku 1037
pku 1050 已做
pku 1088 已做
pku 1141 已做
pku 1159 已做
pku 1163 已做
pku 1322 AC
看到題目就害怕,概率的-_-結果分析之下原來也不難
狀態d[i][j]表示有j種顏色,拿了i個巧克力的最優值
方程: d[i+1][j+1] = d[i][j]*(c-j)/c; (c為總顏色數)
d[i+1][j-1] = d[i][j]*j/c;
由于只是保留3位小數,所以加優化if (n>1000) n = 1000+n%2; //至于為什么要分奇偶性,這個還不太懂-_-這道算是ac一半而已
pku 2904 AC
dp[k][i][j]表示k個郵筒時候放鞭炮數為i..j時候的最優值
轉移方程為:
dp[k][i][j] = min{t+max(d[k-1][i][t-1],d[k][t+1][j])};
狀態轉移時候就是考慮選t個鞭炮放時候爆或不爆
pku 1458 已做
pku 1579 已做
pku 1695 AC
d[i][j][k]表示到達第i個點時候另外兩輛車分別在點j和k時候的最優值
方程: d[i+1][j][k] = min(d[i+1][j][k], d[i][j][k]+g[i][i+1]);
d[i+1][i][k] = min(d[i+1][i][k], d[i][j][k]+g[j][i+1]);
d[i+1][i][j] = min(d[i+1][i][j], d[i][j][k]+g[k][i+1]);
//初始條件d[1][1][1] = 0;
pku 1732 AC
線型模型,本想用trie的,結果用map偷懶了。
d[i] = min{d[j]} + 1 0<=j<i && j+1..i字符合法
pku 1953 已做
pku 1976 AC
先對區間做預處理, 后面不足的coaches補0;
d[k][j] = max{d[k-1][p]}+b[j]; 0<=p<=j-m (b為處理后的區間數組,m是一臺locomotiv的容量)
由單調性可以在狀態轉移時候保存前一次轉移時候的最大值再和b[j-m]做比較,把O(n^2)壓縮到O(n)的時間復雜度
pku 2386 已做
pku 2479 已做
pku 2951 已做
pku 3036 已做
pku 3014 已做
pku 2229 已做
pku 1185 AC
最經典的狀態DP,我用三進制表示每行狀態,然后遞推,結果tle,分析之后,枚舉出有效狀態,再推, 1000ms左右,
還是不夠 快, 張偉達的論文上有更快的算法。
pku 1276 AC
01背包
有空把以前的也再做一次!~
posted on 2007-02-28 15:00
豪 閱讀(1477)
評論(2) 編輯 收藏 引用 所屬分類:
算法&ACM