hdu1284 sdut2777 钱币兑换问题(完全背包,递推,母函数)

2024-06-15 16:18

本文主要是介绍hdu1284 sdut2777 钱币兑换问题(完全背包,递推,母函数),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

钱币兑换问题

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 4735    Accepted Submission(s): 2675


Problem Description
在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法。请你编程序计算出共有多少种兑法。

Input
每行只有一个正整数N,N小于32768。

Output
对应每个输入,输出兑换方法数。

Sample Input
  
2934 12553

Sample Output
  
718831 13137761

 

分析:

就是政治老师讲的怎么忘瓶子里装石沙水的问题,要想装得满,先装石头再装沙子最后灌水!

所以只肖考虑换多少3分钱,再考虑用2毛钱有多少种替换方法,1分的自动填满

 

#include<stdio.h>
int main()
{int i,n,s;while(scanf("%d",&n)!=EOF){s=n/3+1;for(i=0;i<=n/3;i++)s+=(n-i*3)/2;printf("%d\n",s);}return 0;
}


 完全背包做法:

#include<stdio.h>
int dp[32768];
int main()
{int i,j,n;dp[0]=1;for(i=1; i<=3; i++)for(j=i; j<32768; j++)dp[j]+=dp[j-i];while(scanf("%d",&n)!=EOF){printf("%d\n",dp[n]);}return 0;
}

递推:

http://hi.baidu.com/shenghao_200/item/6df741079aba53db1ef0465c

http://wenwen.soso.com/z/q181589609.htm

#include<stdio.h>
int a[32768];
int main()
{int n,i;a[0]=0;for(i = 1 ; i < 32768 ; i++){if(i%6==1&&i!=1)a[i]=a[i-1]+(i/6);else a[i]=a[i-1]+(i/6+1);}while(scanf("%d",&n)!=EOF)printf("%d\n",a[n]);return 0;
}

母函数:

定义母函数

G(x)=(1+x+x2+x3+…)*( 1+x2+x4+x6+…)*( 1+x3+x6+x9+…)

将其展开取相应指数项的系数即可(指数代表钱的面值,系数代表方案数)

#include<stdio.h>
#define max 32768
int ans[max],ans2[max],ans3[max];
int main()
{int i,j,n;for(i=0; i<max; i++)ans[i]=1;for(i=0; i<max; i++)for(j=0; i+j<max; j+=2)ans2[i+j]+=ans[i];for(i=0; i<max; i++)for(j=0; i+j<max; j+=3)ans3[i+j]+=ans2[i];while(scanf("%d",&n)!=EOF)printf("%d\n",ans3[n]);return 0;
}


这篇关于hdu1284 sdut2777 钱币兑换问题(完全背包,递推,母函数)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1063951

相关文章

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

Python实现精确小数计算的完全指南

《Python实现精确小数计算的完全指南》在金融计算、科学实验和工程领域,浮点数精度问题一直是开发者面临的重大挑战,本文将深入解析Python精确小数计算技术体系,感兴趣的小伙伴可以了解一下... 目录引言:小数精度问题的核心挑战一、浮点数精度问题分析1.1 浮点数精度陷阱1.2 浮点数误差来源二、基础解决

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C