hdu 1284 钱币兑换问题 (递推 || DP || 母函数)
钱币兑换问题
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 5069 Accepted Submission(s): 2868
题目虽然简单,但是有不同的解决方法:
1、利用母函数打表:
//515MS 492K 540 B C++
#include<stdio.h>
int ans[],tmp[];
void init()
{
int n=;
for(int i=;i<=n;i++){
ans[i]=;
tmp[i]=;
}
for(int i=;i<=;i++){
for(int j=;j<=n;j++)
for(int k=;k+j<=n;k+=i)
tmp[j+k]+=ans[j];
for(int j=;j<=n;j++){
ans[j]=tmp[j];
tmp[j]=;
}
}
}
int main(void)
{
int n;
init();
while(scanf("%d",&n)!=EOF)
{
printf("%d\n",ans[n]);
}
return ;
}
2、DP-完全背包:
//15MS 356K 274 B C++
/*
容量为j,质量为i
*/
#include<stdio.h>
int main(void)
{
int dp[]={};
dp[]=;
for(int i=;i<=;i++)
for(int j=i;j<=;j++)
dp[j]+=dp[j-i]; //只有i-1时情况加上有i的情况。
int n;
while(scanf("%d",&n)!=EOF)
{
printf("%d\n",dp[n]);
}
return ;
}
3、递推:
//15MS 364K 361 B C++
#include<stdio.h>
int ans[]={};
void init()
{
int n=;
for(int i=;i<=n;i++) //只有1、2时的情况
ans[i]=i/+;
for(int i=;i<=n;i++) //加上有3时的情况
ans[i]+=ans[i-];
}
int main(void)
{
int n;
init();
while(scanf("%d",&n)!=EOF)
{
printf("%d\n",ans[n]);
}
return ;
}
hdu 1284 钱币兑换问题 (递推 || DP || 母函数)的更多相关文章
- HDOJ(HDU).1284 钱币兑换问题 (DP 完全背包)
HDOJ(HDU).1284 钱币兑换问题 (DP 完全背包) 题意分析 裸的完全背包问题 代码总览 #include <iostream> #include <cstdio> ...
- HDU 1284 钱币兑换问题 母函数、DP
题目链接:HDU 1284 钱币兑换问题 钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- HDU 1284 钱币兑换问题(全然背包:入门题)
HDU 1284 钱币兑换问题(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1284 题意: 在一个国家仅有1分,2分.3分硬币,将钱N ( ...
- HDU 1284 钱币兑换问题(普通型 数量无限的母函数)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1284 钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others) ...
- hdu 1284 钱币兑换问题 完全背包
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1284 递推公式:dp[i] = sum(dp[i], dp[i-C]) /* 钱币兑换问题 Time ...
- 题解报告:hdu 2084 数塔(递推dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084 Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这 ...
- HDU 1284 钱币兑换问题 (动态规划 背包方案数)
钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- HDU 1284 钱币兑换问题 (完全背包)
钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- HDU 1284 钱币兑换问题 (dp)
题目链接 Problem Description 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法.请你编程序计算出共有多少种兑法. Input 每行只有一个正整数N,N小于327 ...
随机推荐
- Recycler实现瀑布流
(开发环境Android studio) 首先,在开发环境中添加引用(在外层的build.gradle文件下的dependencies里面添加如下引用) implementation 'com.and ...
- Linux给当前用户指定目录授权命令
使用命令: chown -R user:user ./local 说明:user 为当前用户: 完毕!
- 02 shell编程之条件语句
Shell编程之条件语句 学习目标: 掌握shell脚本条件测试 掌握if语句编程 目录结构: 条件测试 条件测试概述 l 对特定的条件进行判断,以决定如何执行操作 l 测试的方法 方法1:tes ...
- Struts2的动态方法,及result跳转方式,全局结果以及默认的action的配置
Action动态方法的调用 首先我们需要在struts.xml中去配置一个常量值如下 那么去哪找呢?找到Struts-core.jar并打开 method属性 <action name=&quo ...
- 数据分析处理库Pandas——字符串操作
字符串小写 字符串大写 字符串长度 去掉字符串中的空格 去掉字符串中的左空格 去掉字符串中的右空格 字符串替换 按字符串切割 字符串是否包含在另一个字符串中
- vue---day02
1. 全局组件的注册 - 创建根实例的时候,data可以是object,也可以是函数 - 创建组件的时候,data必须是函数 1.1 创建 Vue.component('global-componen ...
- Python3爬虫(十) 数据存储之非关系型数据库MongoDB
Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.非关系型数据库NoSQL全程是Not Only SQL,非关系型数据库.NoSQL是基于键值对的,不需要经过S ...
- BootCDNApi使用记录
通过API获取BootCDN所加速的所有前端开源库的基本信息和文件列表 API 将一下API链接中的.min字样去掉后,获取到的JSON格式的返回信息是经过良好的格式化的,便于查看. 所有开源库简要信 ...
- MySQL 从入门到删库
基本操作 登陆指令 mysql -u用户名 -p密码(可以非明文输入) -h主机/IP -D端口 --prompt 提示符 修改提示符 \D 日期 \d 当前数据库 \h 服务器名 \u 用户名 // ...
- Android开发——Android系统启动以及APK安装、启动过程
0. 前言 从Android手机打开开关,到我们可以使用其中的app时,这个启动过程到底是怎么样的? 1. 系统上电 当给Android系统上电,在电源接通的瞬间,CPU内的寄存器和各引脚均会被 ...