[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
",i);
20             return 0;
21         }
22     }
23     printf("-1
");
24     return 0;
25 }
原文地址:https://www.cnblogs.com/skylee03/p/6885834.html