HDU 1028 Ignatius and the Princess III (生成函数/母函数)
题目链接:HDU 1028
Problem Description
"Well, it seems the first problem is too easy. I will let you know how foolish you are later." feng5166 says.
"The second problem is, given an positive integer N, we define an equation like this:
N=a[1]+a[2]+a[3]+...+a[m];
a[i]>0,1<=m<=N;
My question is how many different equations you can find for a given N.
For example, assume N is 4, we can find:
4 = 4;
4 = 3 + 1;
4 = 2 + 2;
4 = 2 + 1 + 1;
4 = 1 + 1 + 1 + 1;
so the result is 5 when N is 4. Note that "4 = 3 + 1" and "4 = 1 + 3" is the same in this problem. Now, you do it!"
Input
The input contains several test cases. Each test case contains a positive integer N(1<=N<=120) which is mentioned above. The input is terminated by the end of file.
Output
For each test case, you have to output a line contains an integer P which indicate the different equations you have found.
Sample Input
4
10
20
Sample Output
5
42
627
Solution
题意
给定 \(n\),求 \(n\) 的划分数。
思路
普通母函数。母函数 \(G(x) = (1+x+x^2+...)(1+x^2+x^4+...)(1+x^3+x^6+...)...\)。
\((1+x+x^2+...)=(x^{0\times1}+x^{1\times1}+x^{2\times1}+...)\) 代表不用数字 \(1\),用一次数字 \(1\),用两次数字 \(1\)……
动态规划的版本见这里。
Code
#include <bits/stdc++.h>
using namespace std;
const int maxn = 200;
int c1[maxn], c2[maxn];
void init() {
    for(int i = 0; i < maxn; ++i) {
        c1[i] = 1;
        c2[i] = 0;
    }
    for(int i = 2; i < maxn; ++i) {
        for(int j = 0; j < maxn; ++j) {
            for(int k = 0; k + j < maxn; k += i) {
                c2[k + j] += c1[j];
            }
        }
        for(int j = 0; j < maxn; ++j) {
            c1[j] = c2[j];
            c2[j] = 0;
        }
    }
}
int main() {
    init();
    int n;
    while(~scanf("%d", &n)) {
        printf("%d\n", c1[n]);
    }
    return 0;
}
HDU 1028 Ignatius and the Princess III (生成函数/母函数)的更多相关文章
- HDU 1028 Ignatius and the Princess III (母函数或者dp,找规律,)
		Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ... 
- 题解报告:hdu 1028 Ignatius and the Princess III(母函数or计数DP)
		Problem Description "Well, it seems the first problem is too easy. I will let you know how fool ... 
- hdu 1028 Ignatius and the Princess III(母函数入门+模板)
		Description "Well, it seems the first problem is too easy. I will let you know how foolish you ... 
- HDU 1028 Ignatius and the Princess III(母函数整数拆分)
		链接:传送门 题意:一个数n有多少种拆分方法 思路:典型母函数在整数拆分上的应用 /********************************************************** ... 
- hdu 1028 Ignatius and the Princess III(母函数)
		题意: N=a[1]+a[2]+a[3]+...+a[m]; a[i]>0,1<=m<=N; 例如: 4 = 4; 4 = 3 + 1; 4 = 2 + 2; 4 = 2 + ... 
- hdu 1028 Ignatius and the Princess III 简单dp
		题目链接:hdu 1028 Ignatius and the Princess III 题意:对于给定的n,问有多少种组成方式 思路:dp[i][j],i表示要求的数,j表示组成i的最大值,最后答案是 ... 
- HDU 1028 Ignatius and the Princess III   整数的划分问题(打表或者记忆化搜索)
		传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1028 Ignatius and the Princess III Time Limit: 2000/1 ... 
- hdu 1028 Ignatius and the Princess III(DP)
		Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ... 
- hdu 1028 Ignatius and the Princess III 母函数
		Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ... 
随机推荐
- CodeChef GCD2
			GCD2 Problem code: GCD2 Submit All Submissions All submissions for this problem are available. ... 
- python 列表总结大全
			1定义 names=[] names=[1,2,1,1,1,] names=[1.'10'.[1,1]] 2添加元素 names.append() names.insert(0,10) names.e ... 
- php开启xdebug扩展及xdebug通信原理
			xdebug调试原理 IDE(如PHPStorm)已经集成了一个遵循BGDP的XDebug插件,当开启它的时候, 会在本地开一个XDebug调试服务,监听在调试器中所设置的端口上,默认是9000,这个 ... 
- 重命名sql数据库
			use master select spid from master.dbo.sysprocesses where dbid=db_id('TW') 查看连接,杀死线程 use master kill ... 
- zabbix 微信告警脚本
			#!/usr/bin/env python3 import requests import json import sys import os def access_token(Corpid,Secr ... 
- django post  get
			GET请求和POST请求 GET请求: 1. 浏览器请求一个页面 2. 搜索引擎检索关键字的时候 POST请求: 1. 浏览器向服务端提交数据,比如登录/注册等 判断提交方式: if request. ... 
- 三、MVC_JsonResult类型
			一.Ajax或者页面请求获取数据,不通过WebApi的时候,使用JsonResult作为返回Json数据格式的类型 二.代码呈现 public class HomeController : Contr ... 
- 终端、mac等小技巧——2019年10月18日
			1.新建finder窗口 cmd+N 2.查看文件夹结构 brew install tree tree命令行参数(只实用与安装了tree命令行工具): -a 显示所有文件和目录. -A 使用ASNI绘 ... 
- 英语单词collaboration
			collaboration 来源——github网站 https://guides.github.com/activities/hello-world/ GitHub is the best way ... 
- ConcurrentHashMap1.7源码分析
			参考:https://www.cnblogs.com/liuyun1995/p/8631264.html HashMap不是线程安全的,其所有的方法都未同步,虽然可以使用Collections的syn ... 
