HDU 2069 Coin Change(完全背包变种)
题意:给你5种银币,50 25 10 5 1,问你可以拼成x的所有可能情况个数,注意总个数不超过100个
组合数问题,一看就是完全背包问题,关键就是总数不超过100个。所有我们开二维dp[k][j],表示使用k个硬币组成j的价值所有个数
接着就是直接使用完全背包,而且枚举硬币个数就只需要一次枚举1到100就好了
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<vector>
#include<string>
#include<cstdio>
#include<cstring>
#include<iomanip>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
using namespace std;
#define eps 1E-8
/*注意可能会有输出-0.000*/
#define Sgn(x) (x<-eps? -1 :x<eps? 0:1)//x为两个浮点数差的比较,注意返回整型
#define Cvs(x) (x > 0.0 ? x+eps : x-eps)//浮点数转化
#define zero(x) (((x)>0?(x):-(x))<eps)//判断是否等于0
#define mul(a,b) (a<<b)
#define dir(a,b) (a>>b)
typedef long long ll;
typedef unsigned long long ull;
const int Inf=<<;
const ll INF=1ll<<;
const double Pi=acos(-1.0);
const int Mod=1e9+;
const int Max=;
int dp[Max][Max],val[Max],vol[Max];
ll Pack(int n)
{
for(int i=; i<; ++i)
for(int j=; j<=n; ++j)
dp[i][j]=;
dp[][]=;
val[]=,val[]=,val[]=,val[]=,val[]=;
for(int i=; i<; ++i)
{
for(int j=; j<=n; ++j)
{
for(int k=; k<; ++k)
{
if(j-val[i]>=)
dp[k][j]+=dp[k-][j-val[i]];
}
}
}
int sum=;
for(int i=; i<=; ++i)
sum+=dp[i][n];
return sum;
}
int main()
{
std::ios::sync_with_stdio(false);
int t,n,m;
//cin >> n;
while(cin >> n)
{
cout << Pack(n) << endl;
}
return ;
}
HDU 2069 Coin Change(完全背包变种)的更多相关文章
- hdu 2069 Coin Change(完全背包)
		Coin Change Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ... 
- HDU 2069 Coin Change
		Coin Change Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ... 
- 题解报告:hdu 2069 Coin Change(暴力orDP)
		题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2069 Problem Description Suppose there are 5 types of ... 
- HDOJ 2069 Coin Change(母函数)
		Coin Change Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ... 
- uva674 Coin Change ——完全背包
		link:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ... 
- Light oj 1233 - Coin Change (III) (背包优化)
		题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1233 题目就不说明了. 背包的二进制优化,比如10可以表示为1 2 4 3,而 ... 
- hdu2069(Coin Change)
		题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2069 Coin Change Time Limit: 1000/1000 MS (Java/Other ... 
- UVA.674 Coin Change (DP 完全背包)
		UVA.674 Coin Change (DP) 题意分析 有5种硬币, 面值分别为1.5.10.25.50,现在给出金额,问可以用多少种方式组成该面值. 每种硬币的数量是无限的.典型完全背包. 状态 ... 
- Lightoj  1231 - Coin Change (I) (裸裸的多重背包)
		题目链接: Lightoj 1231 - Coin Change (I) 题目描述: 就是有n种硬币,每种硬币有两个属性(价值,数目).问用给定的硬币组成K面值,有多少种方案? 解题思路: 赤果果的 ... 
随机推荐
- node 常用命令
			nvm nvm list 列出安装的node npm install -g cnpm --registry=https://registry.npm.taobao.org 安装cnpm npm i ... 
- linux 下载百度盘,迅雷离线文件,解压乱码文件的方法。
			首先,利用bypy的自动打包功能,将百度盘里的文件自动存放至app/bypy中,这样文件就是打包形式. 再利用 axel -n 10 "下载地址",将文件下载至本地. 下载地址获取 ... 
- thinkphp3.2与phpexcel解析
			1.impot导入 第一种方式: import("Org.Util.PHPExcel.TextT"); $tt = new \TextT(); //创建PHPExcel对象,注意, ... 
- PHP 连接 MySQL
			PHP 连接 MySQL PHP 5 及以上版本建议使用以下方式连接 MySQL : MySQLi extension ("i" 意为 improved) PDO (PHP Dat ... 
- IK分词器 整合solr4.7 含同义词、切分词、停止词
			转载请注明出处! IK分词器如果配置成 <fieldType name="text_ik" class="solr.TextField"> < ... 
- UI第九节——UIProgressView
			- (void)viewDidLoad { [super viewDidLoad]; // 实例化 UIProgressView,高度是固定的 UIProgressView ... 
- Linux C  popen()函数详解
			表头文件 #include<stdio.h> 定义函数 FILE * popen( const char * command,const char * type); 函数说明 popen( ... 
- Python的垃圾回收机制
			Python的GC模块主要运用了“引用计数”(reference counting)来跟踪和回收垃圾.在引用计数的基础上,还可以通过“标记-清除”(mark and sweep)解决容器对象可能产生的 ... 
- WebService -- Java 实现之 CXF ( 使用CXF工具生成client 程序)
			1. 下载CXF 工具解压到磁盘 2.添加工具bin目录到PATH环境变量 3.创建一个CXF client新项目 4. run -> cmd 到指定目录,并运行工具目录下的批处理 “wadl2 ... 
- C# FromBase64String 解码换行问题
			Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045-RFC2049,上面有MIME的详细规范.Base64编码可用于在HTTP环境下传递较长的标识信息.例如 ... 
