跨域 datatables bootstrap模板 jquery选择子元素 jquery解析json数据 short几个字节 matlab定义空矩阵 java时间戳 oracle给表增加字段 python函数内定义函数 python正则匹配数字 java基础学习 java使用正则表达式 java中tostring java实例变量 java基本数据结构 java时间转换 java输出 java电子书下载 房产证生成器 typemonkey ipad锁屏 免费脚本 如何给黑白照片上色 dnf传说装备 c4dr19 碧桂园园宝 medcalc jdk9下载 python求和 苹果手机不弹出信任 windows游戏编程 抠图教程 回收站在哪个盘 alert换行 ps平面广告设计教程 兽之祝福 天谕玲珑技能加点 键盘灯怎么关 ass转srt
当前位置: 首页 > 学习教程  > 编程语言

母函数模板

2020/10/16 18:24:46 文章标签:

文章目录前言普通型母函数指数型母函数前言 经典问题:整数划分,整数划分是一个正整数n可以分解成多个正整数的和,这些正整数大于等于1,小于等于n。问有多少种不同的划分。 这种问题一般用母函数来求解 普通型母函数 #include &…

文章目录

  • 前言
  • 普通型母函数
  • 指数型母函数

前言

经典问题:整数划分,整数划分是一个正整数n可以分解成多个正整数的和,这些正整数大于等于1,小于等于n。问有多少种不同的划分。
这种问题一般用母函数来求解

普通型母函数

#include <bits/stdc++.h>
#include <algorithm>
#include <cmath>
#define mod 1000000007
#define ll long long
const int msize = 200;

using namespace std;

int cnt1[1005],cnt2[1005];
void init()
{
	for(int i = 0; i <= msize; i++){
		cnt1[i] = 1;
		cnt2[i] = 0;
	}
	for(int i = 2; i <= msize; i++){
		for(int j = 0; j <= msize; j++){
			for(int k = 0; k+j <= msize; k += i){
				cnt2[k+j] += cnt1[j];
			}
		}
		for(int j = 0; j <= msize; j++){
			cnt1[j] = cnt2[j];
			cnt2[j] = 0;
		}
	}
}

int main()
{
	int n,m;
	init();
	scanf("%d",&n);
	printf("%d",cnt1[n]);
    return 0;	
} 

指数型母函数

待补^^


本文链接: http://www.dtmao.cc/news_show_300410.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?