POJ 1384 完全背包问题
2012-11-15 21:29
288 查看
http://poj.org/bbs?problem_id=1384
完全背包问题,训练赛上没有注意初始化,悲催的结局中...
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
#define manx 505
#define inf 99999999
int x[manx],y[manx];
int dp[10009];
int main(){
int t,e,f;
scanf("%d",&t);
while(t--){
int n,flag=0;
scanf("%d%d%d",&e,&f,&n);
int sum=f-e;
for(int i=0;i<550;i++)
x[i]=y[i]=0;
for(int i=0;i<=10009;i++) // 初始化问题
dp[i]=inf;
dp[0]=0;
for(int i=1;i<=n;i++){
scanf("%d%d",&x[i],&y[i]);
}
for(int i=1;i<=n;i++){ // 完全背包状态转移方程
for(int j=y[i];j<=sum;j++){
dp[j]=min(dp[j],dp[j-y[i]]+x[i]);
}
}
if(dp[sum]==inf) printf("This is impossible.\n");
else printf("The minimum amount of money in the piggy-bank is %d.\n",dp[sum]);
}
}
完全背包问题,训练赛上没有注意初始化,悲催的结局中...
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
#define manx 505
#define inf 99999999
int x[manx],y[manx];
int dp[10009];
int main(){
int t,e,f;
scanf("%d",&t);
while(t--){
int n,flag=0;
scanf("%d%d%d",&e,&f,&n);
int sum=f-e;
for(int i=0;i<550;i++)
x[i]=y[i]=0;
for(int i=0;i<=10009;i++) // 初始化问题
dp[i]=inf;
dp[0]=0;
for(int i=1;i<=n;i++){
scanf("%d%d",&x[i],&y[i]);
}
for(int i=1;i<=n;i++){ // 完全背包状态转移方程
for(int j=y[i];j<=sum;j++){
dp[j]=min(dp[j],dp[j-y[i]]+x[i]);
}
}
if(dp[sum]==inf) printf("This is impossible.\n");
else printf("The minimum amount of money in the piggy-bank is %d.\n",dp[sum]);
}
}
相关文章推荐
- POJ 1384 && HDU 1114 Piggy-Bank(完全背包问题)
- POJ 1384 完全背包问题
- poj 1384 完全背包问题
- POJ---1384Piggy-Bank (完全背包+装满问题)
- POJ 1384 Piggy-Bank(完全背包问题)
- POJ1384完全背包问题
- POJ 1384 Piggy Bank 完全背包问题
- POJ 1384 Piggy-Bank(完全背包问题)
- poj 1384 完全背包问题 dp
- POJ 1384 完全背包
- poj 1384 Piggy-Bank (完全背包)
- POJ 1384 Piggy-Bank 完全背包
- 完全背包 poj 1384
- poj 1384 & zoj 2014 Piggy-Bank(完全背包)
- poj 1384 Piggy-Bank(完全背包)
- poj1384 完全背包
- POJ 1384 Piggy-Bank(完全背包)
- POJ 1384 Piggy-Bank(完全背包)
- poj 3181 Dollar Dayz 钱币兑换问题 大数/高精度 完全背包
- POJ 1384 Piggy-Bank (完全背包)