hdu 1085 面值为1.2.5的硬币不能组成的最小面值
来源:互联网 发布:js鼠标移上去图片放大 编辑:程序博客网 时间:2024/04/29 20:09
给定面值为1、2、5的硬币的数量,求不能组成的钱的最小面值。
母函数不会,用dp做的,其实就是多重背包。
#include<bitset>#include<map>#include<vector>#include<cstdio>#include<iostream>#include<cstring>#include<string>#include<algorithm>#include<cmath>#include<stack>#include<queue>#include<set>#define inf 0x3f3f3f3f#define mem(a,x) memset(a,x,sizeof(a))using namespace std;typedef long long ll;typedef pair<int,int> pii;inline int in(){ int res=0; char c; while((c=getchar())<'0' || c>'9'); while(c>='0' && c<='9')res=res*10+c-'0',c=getchar(); return res;}const int N=10006;int a[N];int v[4];int w[4];int num[N]; //开小了int main(){ while(~scanf("%d",&w[1])) { w[2]=in(),w[3]=in(); v[1]=1,v[2]=2,v[3]=5; if(w[1]+w[2]+w[3]==0)break; mem(a,0); a[0]=1; for(int i=1;i<=3;i++) //dp多重背包做的 { mem(num,0); for(int j=v[i];j<10000;j++) //注意j的开始 { if(!a[j] && a[j-v[i]] && num[j-v[i]]<w[i]) { a[j]=1; num[j]=num[j-v[i]]+1; } } } for(int i=1;i<10000;i++) { if(!a[i]) { printf("%d\n",i); break; } } } return 0;}
0 0
- hdu 1085 面值为1.2.5的硬币不能组成的最小面值
- 硬币面值的组成多少种可能---Javascript实现
- 硬币的面值组合个数
- 硬币面值组合的算法题解
- 有100枚硬币,总面值是247元,这些硬币的面值有三种:1元,2元 ,5元,编程输出硬币的组合有多少种?
- 【动态规划】最小硬币面值组合
- 给你不同面值的硬币和总金额target。 写一个函数来计算组成这个数量的组合的数量。
- 动态规划:如果我们有面值为1元、3元和5元的硬币若干枚,如何用最少的硬币凑够11元?
- 无重复货币面值组合所不能表示的最小钱数 DP思想
- 硬币面值问题
- 硬币面值组合问题
- 硬币面值方案
- 读取excel里面值为公式的列
- 如果我们有面值为1元、3元和5元的硬币若干枚,如何用最少的硬币凑够N元?(动态规划问题)
- java 计算金额需要的面值为100,50,20,10,5,1的张数
- 硬币面值组合(上台阶)
- 2.1 7621硬币面值组合
- 计算最少用到的硬币个数以用每种面值的用数
- throws和throw及try catch解惑
- 深入分析C++引用
- 使用jquery操作session
- Bit Manipulation - Bitwise AND of Numbers Range
- 【SpringMVC整合MyBatis】validation校验-商品修改校验
- hdu 1085 面值为1.2.5的硬币不能组成的最小面值
- 我的iOS开发之Objective-C第2天之面向对象特性之封装
- javascript代码是否有保密性?
- oracle中查看用户权限
- JSON的三种解析方式
- 破解时常用的汇编指令
- http请求部分常见的状态码
- easyui 窗口的onBeforeClose 使用
- 字符串哈希函数