by花栗鼠
chipmunk_byr
全部博文(27)
2011年(1)
2010年(8)
2009年(18)
Bsolar
浪花小雨
ddcai
tx199306
guj51686
rdc2010
linggang
Oliver_L
gaonin9
分类: C/C++
2009-11-05 16:52:10
#include<stdio.h> #include<stdlib.h> main() { long n,pos[60],tmp,tem,max,dp[60]; int m,i,j,mag[60],temp; scanf("%ld%d",&n,&m); while(n||m) { for(i=0;i<=m-1;i++) scanf("%ld%d",&pos[i],&mag[i]); for(i=0;i<=m-2;i++) for(j=i+1;j<=m-1;j++) { if(pos[i]>pos[j]) { tem=pos[i]; pos[i]=pos[j]; pos[j]=tem; temp=mag[i]; mag[i]=mag[j]; mag[j]=temp; } } pos[m]=n; dp[m]=0; dp[m+1]=0; for(i = m-1;i >= 0;i--){ if(pos[i] + mag[i] > pos[m]){ dp[i] = dp[i+1]; } else if( pos[i] + mag[i] <= pos[i+1]){ dp[i] = mag[i] + dp[i + 1]; } else{ for(j = m; pos[j] >= pos[i] + mag[i]; j--); tmp = mag[i] + dp[j+1 ]; if(tmp >= dp[i+1]) dp[i] = tmp; else dp[i] = dp[i+1]; } } printf("%ld\n",dp[0]+2*(n-dp[0])); scanf("%ld%d",&n,&m); } //system("pause"); return 0; }
上一篇:3GPP文档编号规则
下一篇:使用蓝牙完成设备的搜索
登录 注册