哈理工OJ 1627 猪猪罐(完全背包)
来源:互联网 发布:golang http handler 编辑:程序博客网 时间:2024/06/13 02:33
题目链接:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1627
猪猪罐
Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 39(21 users) Total Accepted: 23(21 users) Rating: Special Judge: No
Description
ikki有一个小金库,这是一个猪猪罐,猪猪罐里面放了一些硬币。ikki知道了每种硬币的价值和重量,并且还知道空猪猪罐的重量,现在ikki想知道这个猪猪罐里至少放了价值为多少的硬币,她只能称出整个猪猪罐的总重量,你能帮她计算一下么?
Input
多组测试数据,第一行给出一个整数T表示测试数据的组数。
对于每组数据:
第一行输入两个正整数E、V,其中E表示空猪猪罐的重量,V表示放了硬币之后猪猪罐的总重量。(1<=E<=V<=10000)
第二行输入一个整数N表示硬币的种数。(1<=N<=50)
接下来的N行,每行两个整数v,w分别表示每种硬币的价值和重量。(1<=v<=50000,1<=w<=10000)
Output
对于每组数据输出猪猪罐中硬币价值可能的最小值,如果不存在则输出”Impossible”。
每组输出占一行。
Sample Input
3
10 110
2
1 1
30 50
10 110
2
1 1
50 30
1 6
2
10 3
20 4
Sample Output
60
100
Impossible
【题目分析】本题是一道完全背包的题目,一开始想了好久好久,因为这个背包和平常遇到的完全背包有区别,因为这个背包是知道了最终的重量,然后让你求是不是可以由某些硬币组成,假如可以由某些硬币组成的话,找出价值和最小的那一组硬币。可以一开始给dp数组置一个很大的数。
【AC代码】
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define INF 1000005struct node{ int val,cost;}a[55];int dp[10005];int main(){ int t,e,v,n; scanf("%d",&t); while(t--) { scanf("%d%d",&e,&v); scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d%d",&a[i].val,&a[i].cost); } v=v-e; for(int i=1;i<=v;i++) { dp[i]=INF; } dp[0]=0; for(int i=1;i<=n;i++) { for(int j=a[i].cost;j<=v;j++) { if(dp[j-a[i].cost]!=INF) { dp[j]=min(dp[j-a[i].cost]+a[i].val,dp[j]); } } } if(dp[v]!=INF) printf("%d\n",dp[v]); else printf("Impossible\n"); } return 0;}
- 哈理工OJ 1627 猪猪罐(完全背包)
- Hrbust 哈理工 oj 2317 Game (完全背包)
- 哈理工OJ 2274 Heroic Action(01坑背包)
- 哈理工OJ 1333GG的关心(01背包)
- HLG 哈理工 1053 Warcraft III (完全背包)
- 哈理工OJ2252 世界 (完全背包变形)
- 哈理工OJ 2090 背包【思维】
- hrbust 哈理工oj 1993数硬币【dp】【背包】
- hrbust 哈理工 2252 完全背包模板题
- 南阳理工acm 995硬币找零(完全背包)
- 南阳理工OJ_题目311 完全背包
- 南阳理工acm 311完全背包
- 哈理工OJ 2304 Julyed(水题)
- 完全背包 南阳oj 311
- hrbust 哈理工oj 1541 集合划分【dp、0-1背包】
- hrbust/哈理工oj 1740 A Story on a Sunshine Beach【二维01背包+输出路径】
- hdu 1028/哈理工OJ2004 Ignatius and the Princess III【完全背包】【dp】
- nyist oj 311 完全背包 (动态规划经典题)
- Unity开发中遇到的坑——AssetBundle.mainAsset 返回null
- apache学习安全总结
- 为什么重写equals 和hashCode方法,如何重写
- 第五周项目5-后缀表达式(栈)!!!
- <property name="hbm2ddl.auto"></property> 里面值的含义
- 哈理工OJ 1627 猪猪罐(完全背包)
- 用链表写栈
- Spark运行模式
- grails连接各个数据库
- Linux简单介绍
- 对 (function($){ })(jQuery); 的理解
- GStreamer基础教程翻译-及原文地址,看懂后GStreamer就快速入门了
- 步骤编程法简介
- JZOJ4890. 【NOIP2016提高A组集训第14场11.12】随机游走