您的位置:首页 > 其它

HDU 1114 Piggy-Bank (完全背包)

2014-08-27 20:21 381 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114

题目全是废话,其实就是一个完全背包求最小值

代码:#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>

using namespace std;

#define MAX 1<<20
int dp[20000];

int main()
{
int N;

scanf ("%d",&N);

while (N--)
{
int m1,m2;
int v;
scanf ("%d%d",&m1,&m2);

v = m2 - m1;

int n;
scanf("%d",&n);

for (int i = 1;i <= v;i++)
dp[i] = MAX;

dp[0] = 0;
while (n--)
{
int bw,bv;

scanf ("%d%d",&bw,&bv);

for (int i = bv;i <= v;i++)
dp[i] = min(dp[i],dp[i - bv] + bw);
}

if (dp[v] == MAX)
puts("This is impossible.");
else
printf ("The minimum amount of money in the piggy-bank is %d.\n",dp[v]);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: