背包九讲-完全背包-HDU1114
2015-09-02 10:31
288 查看
注意的两个点就是:
题目要最后的背包价值最小,所以用min,初始化的时候把全部初始化为inf,但是f[0]=0
其次是,inf要充分大,不能是2^31-1,因为要做加法,会溢出。
题目要最后的背包价值最小,所以用min,初始化的时候把全部初始化为inf,但是f[0]=0
其次是,inf要充分大,不能是2^31-1,因为要做加法,会溢出。
#include <cstdio> #include <cmath> #include <cstring> #include <string> #include <algorithm> #include <iostream> #include <queue> #include <map> #include <set> #include <vector> using namespace std; #define inf 1147483647 int max(int a,int b) {return a>b?a:b;} int min(int a,int b) {return a<b?a:b;} int c[505],w[505]; int f[10005]; int main() { int t,n,m; cin>>t; while(t--) { f[0]=0; int i,j; scanf("%d%d",&n,&m); int big=m-n; for (i=1;i<=big;i++) f[i]=inf; scanf("%d",&n); for (i=1;i<=n;i++) { scanf("%d%d",&w[i],&c[i]); } for (i=1;i<=n;i++) { for (j=c[i];j<=big;j++) { f[j]=min(f[j],f[j-c[i]]+w[i]); } } if (f[big]!=inf) printf("The minimum amount of money in the piggy-bank is %d.\n",f[big]); else printf("This is impossible.\n"); } return 0; }
相关文章推荐
- LeetCode之 Delete Node in a Linked List
- R-Studio
- BigDecimal.setScale 处理java小数点
- 详解MySQL集群搭建
- Linux下chkconfig命令详解
- NYOJ 48 小明的调查作业
- OFDM之交织
- Linux下取代top的进程管理工具 htop
- 百度地图
- C语言内存分配
- json-lib 的maven dependency 一直找不到jar 包
- 分析SQL Server Profiler的监控方式
- HttpClient_HttpClient 4.3.6 HTTP状态管理
- DQL、DML、DDL、DCL的概念与区别
- NYOJ 40 公约数和公倍数
- 关于asp.net MVC4 无法检索“mvc4.Models.Movie”的元数据
- hashMap和hashTable的区别
- android源码出现的@字符代表什么意思
- Android中的Flux架构
- 强大Android图片加载的框架:Fresco