HDU 1398 Square Coins 平方硬币 (普通母函数,水)
2015-05-21 11:40
381 查看
题意:
有17种硬币,每种的面值为编号的平方,比如 1,4,9,16....。给出一个数字,求组成这个面值有多少种组法?
思路:
用普通母函数解,主要做的就是模拟乘法,因为硬币是无限的,所以每个构造式中每一个项的系数都是1。我们只需要第n项的系数,大于n的并不需要,所以大于n的项就不用再做计算了。
AC代码
有17种硬币,每种的面值为编号的平方,比如 1,4,9,16....。给出一个数字,求组成这个面值有多少种组法?
思路:
用普通母函数解,主要做的就是模拟乘法,因为硬币是无限的,所以每个构造式中每一个项的系数都是1。我们只需要第n项的系数,大于n的并不需要,所以大于n的项就不用再做计算了。
#include <bits/stdc++.h> using namespace std; const int N=310; int main() { freopen("input.txt", "r", stdin); int n, ans ={0}; while(scanf("%d",&n), n) { for(int i=0; i<=n; i++) ans[i]=1; //初始化为1,最小面值是1 int tmp ={0}; //保存临时的结果 for(int i=2; i<18&&n>=i*i; i++) { for(int j=0; j<=n; j++) { for(int k=0; j+k<=n; k+=i*i) tmp[j+k]+=ans[j]; } memcpy(ans,tmp,sizeof(tmp)); //以ans作为结果来乘 memset(tmp,0,sizeof(tmp)); //置零 } cout<<ans <<endl; } return 0; }
AC代码
相关文章推荐
- Square Coins HDU(1398)(典型的母函数)
- 母函数-以HDU-1398 Square Coins为例
- hdu 1398 普通母函数
- 【HDU - 139】Square Coins 【母函数】
- 杭电ACM hdu 1398 Square Coins 解题报告(母函数)
- hdu 1398母函数(平方数的组合)
- hdu1398 Square Coins ——DP
- hdu 1398 Square Coins/hdu 1028 Ignatius and the Princess III
- Square Coins hdu 1398
- HDU 母函数简单题 - 找单词/Ignatius and the Princess III/Square Coins/Holding Bin-Laden Captive!
- hdu 1398 Square Coins 完全背包变形
- Hdu 1398 Square Coins//整数划分(二)
- hdu 1398 Square Coins
- 【HDU 1398】【母函数入门题】Square Coins【硬币种类有1^2,2^2,3^2,4^2...17^2,这几种;输入n;求出能够组合成n的组合有多少种】
- HDU-1398-Square Coins
- hdu 1398 Square Coins
- HDU 1398 Square Coins
- HDU 1398 Square coins 完全背包
- Combinatorics——HDUOJ 1398 - Square Coins ! (母函数-种类个数无限)
- hdu 2069 普通母函数 +dp