完全背包 POJ 1384
2014-04-16 16:46
246 查看
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; struct Money { int value; int weight; }; int pigWeight = 0; int pigMoneyWeight = 0; int moneyType = 0; Money mList[510]; long minMoney[10000]; void completePack(int type,int value,int weight) { for (int k = weight; k <= pigMoneyWeight - pigWeight; k++) { if(minMoney[k-weight] < 500000000) minMoney[k] = min(minMoney[k],minMoney[k-weight] + value); } } int main() { int testcase = 0; scanf("%d",&testcase); while(testcase--) { for (int i=0; i<10000; i++) { minMoney[i] = 500000000; } scanf("%d%d",&pigWeight,&pigMoneyWeight); scanf("%d",&moneyType); minMoney[0] = 0; for (int i=1; i<=moneyType; i++) scanf("%d%d",&mList[i].value,&mList[i].weight); for (int i=1; i<=moneyType; i++) completePack(i,mList[i].value,mList[i].weight); if(minMoney[pigMoneyWeight-pigWeight] < 500000000) printf("The minimum amount of money in the piggy-bank is %d.\n",minMoney[pigMoneyWeight-pigWeight]); else printf("This is impossible.\n"); } return 0; }
相关文章推荐
- 基于Android中dp和px之间进行转换的实现代码
- Android中dip、dp、sp、pt和px的区别详解
- 简单的四则运算
- 数的奇偶性
- ACM网址
- 1272 小希的迷宫
- 1272 小希的迷宫
- hdu 1250 大数相加并用数组储存
- Android对px和dip进行尺寸转换的方法
- 求两个数的最大公约数【ACM基础题】
- 打印出二进制中所有1的位置
- 杭电题目---一只小蜜蜂
- Android根据分辨率进行单位转换-(dp,sp转像素px)
- android 尺寸 dp,sp,px,dip,pt详解
- ACM posters
- zoj3549 快速幂
- 浅谈manacher算法 最长回文子串(Longest Palindromic Substring)
- 前缀表达式,中缀表达式,后缀表达式转化和计算
- c/c++中让输入以回车换行键结束输入
- 图论学习笔记之一——Floyd算法