]]>POJ1976 A Mini Locomotive(綆鍗旸P)http://www.shnenglu.com/cisjiong/archive/2010/05/25/116291.htmlCisJiongCisJiongTue, 25 May 2010 02:42:00 GMThttp://www.shnenglu.com/cisjiong/archive/2010/05/25/116291.htmlhttp://www.shnenglu.com/cisjiong/comments/116291.htmlhttp://www.shnenglu.com/cisjiong/archive/2010/05/25/116291.html#Feedback0http://www.shnenglu.com/cisjiong/comments/commentRss/116291.htmlhttp://www.shnenglu.com/cisjiong/services/trackbacks/116291.htmlhttp://acm.pku.edu.cn/JudgeOnline/problem?id=1976 棰樼洰澶ф剰灝辨槸緇欏嚭涓鍫嗘暟鎹紝鎵懼嚭涓嶇浉浜ょ殑闀垮害涓簃鐨勪笁涓尯闂翠嬌涔嬪拰鏈澶с?br>涓昏鎬濊礬錛屽厛鎵撹〃鎵鏈夐暱搴︿負(fù)m鐨勫尯闂村拰澶у皬錛宒p[i][j]琛ㄧず鍓峣涓尯闂村彇j涓殑鏈澶у鹼紝鍒檇p[i][j]=Max(dp[i-1][j],dp[i-m][j-1]).
#include<iostream> usingnamespace std; #define maxn 50001 int num[maxn],val[maxn],dp[maxn][4]; inline int Max(int a,int b) { return a>b ? a : b; } int main() { int i,j,k,t,n,m,tmp; scanf("%d",&t); while(t--&&scanf("%d",&n)) { for(i=1;i<=n;++i) scanf("%d",&num[i]); scanf("%d",&m); for(i=1;i<=n-m+1;++i) { val[i]=0; for(j=i;j<i+m;++j) val[i]+=num[j]; } memset(dp,0,sizeof(dp)); tmp=n-m+1; for(i=1;i<=tmp;++i) { if(i-m<0) k=0; else k=i-m; for(j=1;j<=3;++j) dp[i][j]=Max(dp[i-1][j],dp[k][j-1]+val[i]); } printf("%d\n",dp[n-m+1][3]); } return0; }
]]>POJ1163 The Trianglehttp://www.shnenglu.com/cisjiong/archive/2010/05/22/116077.htmlCisJiongCisJiongSat, 22 May 2010 01:41:00 GMThttp://www.shnenglu.com/cisjiong/archive/2010/05/22/116077.htmlhttp://www.shnenglu.com/cisjiong/comments/116077.htmlhttp://www.shnenglu.com/cisjiong/archive/2010/05/22/116077.html#Feedback0http://www.shnenglu.com/cisjiong/comments/commentRss/116077.htmlhttp://www.shnenglu.com/cisjiong/services/trackbacks/116077.htmlhttp://acm.pku.edu.cn/JudgeOnline/problem?id=1163 璐翠釜鏈綆鍗曠殑dp錛屽紑濮嬬粌dp.