首页 > 代码库 > Piggy-Bank(复习完全背包)
Piggy-Bank(复习完全背包)
传送门
题目大意:
有一个存钱的储存罐,给你它存满钱之前和之后的重量,和几类硬币的面值和重量。
求装满储钱罐时最小能得到多少钱。
题解:完全背包变形。
因为要求最小 一开始赋值大数。
code:
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int w1,w2,wi,t,k,f[10002],v[510],w[510]; int main() { scanf("%d",&t); while(t--) { memset(f,0x3f,sizeof(f)); f[0]=0; //** scanf("%d%d",&w1,&w2); wi=w2-w1; scanf("%d",&k); for(int i=1;i<=k;i++) scanf("%d%d",&v[i],&w[i]); for(int i=1;i<=k;i++) for(int j=w[i];j<=wi;j++) f[j]=min(f[j],f[j-w[i]]+v[i]); if(f[wi]==0x3f3f3f3f) printf("This is impossible.\n"); else printf("The minimum amount of money in the piggy-bank is %d.\n",f[wi]); } return 0; }
Piggy-Bank(复习完全背包)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。