[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 }

 

posted @ 2017-05-21 20:19  skylee03  阅读(116)  评论(0编辑  收藏  举报