您的位置:首页 > 其它

动态规划 背包问题 poj 1837 Balance

2017-08-20 17:25 405 查看
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int dp[25][15010];
int main()
{
int n,g;
int c[30];
int w[30];
cin>>n>>g;
for(int i=1;i<=n;++i){
cin>>c[i];
}
for(int i=1;i<=g;++i){
cin>>w[i];
}

memset(dp,0,sizeof(dp));
dp[0][7500]=1;
for(int i=1;i<=g;++i){
for(int j=0;j<=15000;++j){
if(dp[i-1][j]){
for(int k=1;k<=n;++k){
dp[i][j+c[k]*w[i]]+=dp[i-1][j];
}
}
}
}
cout<<dp[g][7500]<<endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: