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;
}
题目全是废话,其实就是一个完全背包求最小值
代码:#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;
}
相关文章推荐
- HDU 1114 Piggy-Bank ( 完全背包 )
- hdu 1114 Piggy-Bank(完全背包)
- 背包(1)poj 1384||hdu 1114 Piggy-bank --- 完全背包
- HDU1114 Piggy-Bank(完全背包,dp)
- HDU1114 Piggy-Bank 完全背包
- hdu1114 Piggy-Bank 完全背包
- hdu 1114 Piggy-Bank(完全背包)
- HDU 1114 Piggy-Bank 完全背包入门
- hdu 1114 Piggy-Bank 完全背包基础题
- hdu 1114 Piggy-Bank(完全背包)
- HDU 1114 Piggy-Bank(完全背包)
- HDU 1114 Piggy-Bank完全背包
- hdu 1114 Piggy-Bank(完全背包)
- HDU1114题Piggy-Bank(最小值的完全背包)
- HDU 1114 Piggy-Bank (完全背包)
- HDU-1114 Piggy-Bank 完全背包
- HDU 1114 Piggy-Bank (完全背包)
- hdu 1114 Piggy-Bank(完全背包)
- hdu 1114 Piggy-Bank 完全背包
- HDU 1114 Piggy-Bank 动态规划完全背包