【HDU 1398】【母函数入门题】Square Coins【硬币种类有1^2,2^2,3^2,4^2...17^2,这几种;输入n;求出能够组合成n的组合有多少种】
来源:互联网 发布:德芙巧克力知乎 编辑:程序博客网 时间:2024/05/17 08:55
传送门:http://acm.split.hdu.edu.cn/showproblem.php?pid=1398
描述:
Square Coins
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11451 Accepted Submission(s): 7841
Problem Description
People in Silverland use square coins. Not only they have square shapes but also their values are square numbers. Coins with values of all square numbers up to 289 (=17^2), i.e., 1-credit coins, 4-credit coins, 9-credit coins, ..., and 289-credit coins, are available in Silverland.
There are four combinations of coins to pay ten credits:
ten 1-credit coins,
one 4-credit coin and six 1-credit coins,
two 4-credit coins and two 1-credit coins, and
one 9-credit coin and one 1-credit coin.
Your mission is to count the number of ways to pay a given amount using coins of Silverland.
There are four combinations of coins to pay ten credits:
ten 1-credit coins,
one 4-credit coin and six 1-credit coins,
two 4-credit coins and two 1-credit coins, and
one 9-credit coin and one 1-credit coin.
Your mission is to count the number of ways to pay a given amount using coins of Silverland.
Input
The input consists of lines each containing an integer meaning an amount to be paid, followed by a line containing a zero. You may assume that all the amounts are positive and less than 300.
Output
For each of the given amount, one line containing a single integer representing the number of combinations of coins should be output. No other characters should appear in the output.
Sample Input
210300
Sample Output
1427
Source
Asia 1999, Kyoto (Japan)
Recommend
Ignatius.L | We have carefully selected several similar problems for you: 1085 1028 2152 2082 1709
题意:
硬币种类有1^2,2^2,3^2,4^2...17^2,这几种;输入n;求出能够组合成n的组合有多少种;
思路:
基本的母函数题,与hdu1028相似,只是将原来的1,2,3,4,……换成了1^2,2^2,3^2,4^2...…
代码:
#include <bits/stdc++.h>using namespace std;#define rep(i,k,n) for(int i=k;i<=n;i++)const int N = 310;int num1[N], num2[N];void init(){ rep(i, 0, N - 1){ num1[i] = 1; num2[i] = 0; } rep(i, 2, 17){ rep(j, 0, N - 1)//枚举已知范围 (前面所有项结果项结果) for(int k = 0; k + j < N; k += i * i){ //枚举新增范围(下一项 ) num2[k + j] += num1[j]; } rep(j, 0, N - 1){//重置 num1[j] = num2[j]; num2[j] = 0; } }}int main(){ int n; init(); while(~scanf("%d", &n), n){ printf("%d\n", num1[n]); } return 0;}
0 0
- 【HDU 1398】【母函数入门题】Square Coins【硬币种类有1^2,2^2,3^2,4^2...17^2,这几种;输入n;求出能够组合成n的组合有多少种】
- 有1分,2分,5分,10分四种硬币,每种硬币数量无限,给定n分钱,求有多少种组合可以组合成n分钱?
- 创新工场笔试题----有1分,2分,5分,10分四种硬币,每种硬币数量无限,给定n分钱,求有多少种组合可以组合成n分钱?
- 有100枚硬币,总面值是247元,这些硬币的面值有三种:1元,2元 ,5元,编程输出硬币的组合有多少种?
- 每天一道LeetCode-----找到有多少个组合加起来和是n,每个组合的数字只能是1或者2
- n!中2的因子有多少
- 1 2 5组合100,有多少种方法
- 杭电1284 钱换为3,2,1分的硬币,换取的方法有多少种类
- 组合数 从4个人中选2个人参加活动,一共有6种选法。 从n个人中选m个人参加活动,一共有多少种选法?
- 组合数 从4个人中选2个人参加活动,一共有6种选法。 从n个人中选m个人参加活动,一共有多少种选法?
- 每天一道LeetCode-----找到1,2,...,n这n个数所有的组合,每个组合有k个元素,且元素大小递增
- n!中,有多少个2
- 输入m和n,从1,2,3...n中找出和为m的组合
- 1分2分5分的硬币,组成1角,共有多少种组合
- 1分2分5分的硬币,组成1角,共有多少种组合。
- 1分2分5分的硬币,组成1角,共有多少种组合。
- 1分2分5分的硬币,组成1角,共有多少种组合
- 1分2分5分的硬币,组成1角,共有多少种组合
- Ubuntu16.04 Redis的安装及设置redis开机启动
- 手机号的接口(自己写)
- H264编码原理以及I帧B帧P帧
- 【Domoticz】【ESP】通过Domoticz控制esp的http命令格式——ESPEasy System Variables
- 编译原理01
- 【HDU 1398】【母函数入门题】Square Coins【硬币种类有1^2,2^2,3^2,4^2...17^2,这几种;输入n;求出能够组合成n的组合有多少种】
- 机器数 真值 原码 反码 补码
- 文章标题
- servlet执行流程
- centos + python + uwsgi 搭建网站
- Struts2-上传/下载文件功能实现
- memcache的搜索次数,每页数据存在memcache中,分页普通页面
- 树莓派搭建web系列
- 无向图欧拉路的判定