[HAOI2012]音量调节
OJ题号:BZOJ2748、洛谷1877
思路:动态规划。
1 #include<cstdio> 2 #include<cstring> 3 int main() { 4 int n,b,m; 5 scanf("%d%d%d",&n,&b,&m); 6 bool f[n+1][m+1]; 7 memset(f,0,sizeof f); 8 f[0][b]=true; 9 for(int i=1;i<=n;i++) { 10 int c; 11 scanf("%d",&c); 12 for(int j=0;j<=m;j++) { 13 if(j-c>=0) f[i][j]|=f[i-1][j-c]; 14 if(j+c<=m) f[i][j]|=f[i-1][j+c]; 15 } 16 } 17 for(int i=m;i>=0;i--) { 18 if(f[n][i]) { 19 printf("%d\n",i); 20 return 0; 21 } 22 } 23 printf("-1\n"); 24 return 0; 25 }