POJ1742 coins
来源:互联网 发布:java的socket编程 编辑:程序博客网 时间:2024/05/22 15:25
多重背包
f[i]代表价值为i的有没有被发现
used[value]代表,价值为value的时候第i枚硬币用了几个
#include <cstdio>#include <cstring>#include <cstdlib>#include <iostream>#include <cmath>#include <algorithm>#define SCAND(x) scanf("%d",&(x))#define SCANS(x) scanf("%s",(x))#define PRINTD(x) printf("%d",(x))using namespace std;const int INF=1<<30;int w[111],c[111],used[111111],f[111111];void memall(){ memset(w,0,sizeof(w)); memset(c,0,sizeof(c)); memset(used,0,sizeof(used)); memset(f,0,sizeof(f));}int main(){ #ifndef ONLINE_JUDGE freopen("H:/in.txt","r",stdin); //freopen("H:/out.txt","w",stdout); #endif int n,m; while(scanf("%d%d",&n,&m)) { if(n==0&&m==0) break; memall(); for(int i=0;i<n;i++) SCAND(w[i]); for(int i=0;i<n;i++) SCAND(c[i]); f[0]=1; int sum=0; for(int i=0;i<n;i++) { memset(used,0,sizeof(used)); for(int j=w[i];j<=m;j++) { if(!f[j]&&f[j-w[i]]&&used[j-w[i]]+1<=c[i]) { f[j]=1; used[j]=used[j-w[i]]+1; sum++; } } } cout<<sum<<endl; }}
0 0
- poj1742 - Coins
- poj1742 Coins
- POJ1742--Coins
- POJ1742 coins
- POJ1742---Coins
- [POJ1742]Coins
- POJ1742-Coins
- poj1742-coins
- POJ1742 Coins(背包)
- POJ1742 Coins DP
- POJ1742:Coins(多重背包)
- poj1742 Coins 解题报告
- [POJ1742 Coins]DP
- POJ1742-Coins-多重背包
- POJ1742 Coins 【多重背包】
- poj1742- Coins(多重背包)
- poj1742-Coins-acm解题报告
- POJ1742 Coins(多重背包可行性)
- 这才是婚姻
- Apache DataFu: LinkedIn开源的Pig UDF库
- Git简介
- hello world 级别模块程序
- 使用github上的开源框架SlidingMenu环境的搭建,以及getSupportActionBar方法不能找到的问题
- POJ1742 coins
- java和bat相互调用
- 据说这是改进版顺序链表
- IIR与FIR基础知识
- jQ confirm确认对话框
- oracle 常用sql
- 使用语音输入法时,当文字没有加载出来,清空文本框时系统崩溃
- c字符串逆序
- 关于青春