POJ 1742 Coins DP 01背包
dp[i][j]表示前i种硬币中取总价值为j时第i种硬币最多剩下多少个,-1表示无法到达该状态。
a.当dp[i-1][j]>=0时,dp[i][j]=ci;
b.当j-ai>=0&&dp[i-1][j-ai]>0时,dp[i][j]=dp[i-1][j-ai]-1;
c.其他,dp[i][j]=-1
- Source Code
- Problem: User: BMan
- Memory: 1112K Time: 1547MS
- Language: G++ Result: Accepted
- Source Code
- //#pragma comment(linker, "/STACK:1024000000,1024000000")
- #include<cstdio>
- #include<cstring>
- #include<cstdlib>
- #include<algorithm>
- #include<iostream>
- #include<sstream>
- #include<cmath>
- #include<climits>
- #include<string>
- #include<map>
- #include<queue>
- #include<vector>
- #include<stack>
- #include<set>
- using namespace std;
- typedef long long ll;
- typedef unsigned long long ull;
- typedef pair<int,int> pii;
- #define pb(a) push(a)
- #define INF 0x1f1f1f1f
- #define lson idx<<1,l,mid
- #define rson idx<<1|1,mid+1,r
- #define PI 3.1415926535898
- template<class T> T min(const T& a,const T& b,const T& c) {
- return min(min(a,b),min(a,c));
- }
- template<class T> T max(const T& a,const T& b,const T& c) {
- return max(max(a,b),max(a,c));
- }
- void debug() {
- #ifdef ONLINE_JUDGE
- #else
- freopen("d:\\in1.txt","r",stdin);
- freopen("d:\\out1.txt","w",stdout);
- #endif
- }
- int getch() {
- int ch;
- while((ch=getchar())!=EOF) {
- if(ch!=' '&&ch!='\n')return ch;
- }
- return EOF;
- }
- const int maxn=;
- const int maxm=;
- int c[maxn],a[maxn];
- int dp[maxm];
- int main()
- {
- //freopen("data.in","r",stdin);
- int n,m;
- while(cin>>n>>m)
- {
- if(n&&m);else break;
- for(int i=;i<=n;i++)
- cin>>a[i];
- for(int i=;i<=n;i++)
- cin>>c[i];
- memset(dp,-,sizeof(dp));
- dp[]=;
- for(int i=;i<=n;i++)
- {
- for(int j=;j<=m;j++)
- {
- if(dp[j]>=)
- dp[j]=c[i];
- else if(j>=a[i]&&dp[j-a[i]]>)
- dp[j]=dp[j-a[i]]-;
- }
- }
- int cnt=;
- for(int i=;i<=m;i++)
- if(dp[i]>=)
- cnt++;
- cout<<cnt<<endl;
- }
- return ;
- }
POJ 1742 Coins DP 01背包的更多相关文章
- HDOJ(HDU).3466 Dividing coins ( DP 01背包 无后效性的理解)
HDOJ(HDU).3466 Dividing coins ( DP 01背包 无后效性的理解) 题意分析 要先排序,在做01背包,否则不满足无后效性,为什么呢? 等我理解了再补上. 代码总览 #in ...
- UVA 562 Dividing coins(dp + 01背包)
Dividing coins It's commonly known that the Dutch have invented copper-wire. Two Dutch men were figh ...
- Poj 1742 Coins(多重背包)
一.Description People in Silverland use coins.They have coins of value A1,A2,A3...An Silverland dolla ...
- POJ 1742 Coins(多重背包?)
题解 一个自然的思路是对于每一个物品做一次01背包 然后T飞了. 试着用二进制拆分,还是T了. 单调队列,对不起,懒,不想写. 我们这样想.设dp[i]代表i这个面值前几种硬币是否能凑到 然后对于每一 ...
- POJ 1742 Coins 【多重背包DP】
题意:有n种面额的硬币.面额.个数分别为A_i.C_i,求最多能搭配出几种不超过m的金额? 思路:dp[j]就是总数为j的价值是否已经有了这种方法,如果现在没有,那么我们就一个个硬币去尝试直到有,这种 ...
- POJ 1742 Coins(多重背包) DP
参考:http://www.hankcs.com/program/cpp/poj-1742-coins.html 题意:给你n种面值的硬币,面值为a1...an,数量分别为c1...cn,求问,在这些 ...
- poj 1742 Coins (多重背包)
http://poj.org/problem?id=1742 n个硬币,面值分别是A1...An,对应的数量分别是C1....Cn.用这些硬币组合起来能得到多少种面值不超过m的方案. 多重背包,不过这 ...
- POJ 1742 Coins(多重背包,优化)
<挑战程序设计竞赛>上DP的一道习题. 很裸的多重背包.下面对比一下方法,倍增,优化定义,单调队列. 一开始我写的倍增,把C[i]分解成小于C[i]的2^x和一个余数r. dp[i][j] ...
- POJ 1742 Coins 【可行性背包】【非原创】
People in Silverland use coins.They have coins of value A1,A2,A3...An Silverland dollar.One day Tony ...
随机推荐
- 建立一个简单的SpringMVC程序
首先,所建立的程序是一个web程序,所以在web.xml文件中进行如下的配置: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...
- bzoj3087: Coci2009 misolovke
Description [misolovke]给定一个 N*N 的网格.每个格子里至少会有一个捕鼠器, 并且已知每个格子里的捕鼠器个数.现在需要在 每一行 中选取恰好 K 个连续的格子, 把里面的捕鼠 ...
- rh6安装oracle11g+ASM
安装步骤我这里略过,主要说下安装过程中遇到到问题或重要步骤: 1.UDEV绑定: for i in b c d e ;doecho "KERNEL==\"sd*\", B ...
- 使用Maven编译项目时提示程序包javax.servlet.http不存在
将apache-tomcat-8.0.23\lib下的servlet-api.jar拷贝到C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext下即可
- crosswalk-webview
https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview https://cordova.apache.org/doc ...
- centos 6.3 安装 svn
1. 按照http://ostechnix.wordpress.com/2013/04/30/install-subversion-server-in-centos-6-4-rhel-6-4-scie ...
- Thinkpad 笔记本VMware Workstation 安装虚拟机出现“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”解决方法
今天在使用VMware打算在机器中安装新的虚拟机时,出现"此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态"错误如下: 提示信息: 已将该虚拟机配 ...
- C# 正则表达式及返回匹配的所有结果
C# 正则表达式是在 System.Text.RegularExpressions 空间定义的,其中的 IsMatch() 方法用于返回 bool 类型,表示要搜索的字符串与传入的正则表达式是否匹配 ...
- 7,SFDC 管理员篇 - 数据模型 - 公式和验证 1
1,自定义公式 Customize | Your Object | Fields | Add Fields Field SF的公式和Excel的公式差不多,都是支持各种运算和结果 例1,以opport ...
- display:none与visibility: hidden的区别
display:none和visibility: hidden都能把网页上某个元素隐藏起来,但两者有区别: display:none ---不为被隐藏的对象保留其物理空间,即该对象在页面上彻底消失. ...