【BZOJ】【P2748】【HAOI2012】【音量调节】【题解】【dp】
2014-11-05 11:00
344 查看
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2748
f[i][j]表示第i个点为j的可行性
Code:
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
short f[55][1010];
int a[55];
int n,s,mx;
int main(){
cin>>n>>s>>mx;
for(int i=1;i<=n;i++)cin>>a[i];
f[0][s]=1;
for(int i=1;i<=n;i++)
for(int j=0;j<=mx;j++){
if(j-a[i]>=0)
f[i][j]|=f[i-1][j-a[i]];
if(j+a[i]<=mx)
f[i][j]|=f[i-1][j+a[i]];
}for(int i=mx;i>=0;i--)if(f
[i]){printf("%d\n",i);return 0;}
puts("-1");
return 0;
}
f[i][j]表示第i个点为j的可行性
Code:
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
short f[55][1010];
int a[55];
int n,s,mx;
int main(){
cin>>n>>s>>mx;
for(int i=1;i<=n;i++)cin>>a[i];
f[0][s]=1;
for(int i=1;i<=n;i++)
for(int j=0;j<=mx;j++){
if(j-a[i]>=0)
f[i][j]|=f[i-1][j-a[i]];
if(j+a[i]<=mx)
f[i][j]|=f[i-1][j+a[i]];
}for(int i=mx;i>=0;i--)if(f
[i]){printf("%d\n",i);return 0;}
puts("-1");
return 0;
}
相关文章推荐
- BZOJ 2748: [HAOI2012]音量调节【DP】
- BZOJ 2748: [HAOI2012]音量调节 dp
- [bzoj2748][HAOI2012] 音量调节 背包dp
- BZOJ 2748: [HAOI2012]音量调节【二维dp,枚举】
- bzoj 2748: [HAOI2012]音量调节 dp
- BZOJ系列2748《[HAOI2012]音量调节》题解
- [BZOJ][HAOI2012][背包DP]音量调节
- 【bzoj2750】【HAOI2012】【Road】【最短路+dp】
- [bzoj2748][haoi2012]音量调节
- [bzoj2748][HAOI2012]音量调节_动态规划_背包dp
- 【bzoj2748】 HAOI2012音量调节 背包dp
- bzoj-2748 2748: [HAOI2012]音量调节(dp)
- 【BZOJ】【P2298】【HAOI2011】【problem a】【题解】【dp+二分】
- bzoj 2748 [HAOI2012]音量调节
- BZOJ 2748: [HAOI2012]音量调节( dp )
- 【BZOJ】【P2751】【HAOI2012】【容易题(easy)】【题解】【快速幂】
- 【BZOJ】【P1046】【HAOI2007】【上升序列】【题解】【dp】
- bzoj2748 [HAOI2012]音量调节(dp水)
- bzoj2751 [HAOI2012]容易题 数学
- 【BZOJ】【P2659】【Beijing wc2012】【算不出的算式】【题解】【打表】