洛谷P2563 [AHOI2001]质数和分解
题目描述
任何大于 1 的自然数 n 都可以写成若干个大于等于 2 且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。例如,9 的质数和表达式就有四种本质不同的形式:
9 = 2 + 5 + 2 = 2 + 3 + 2 + 2 = 3 + 3 + 3 = 2 + 7 。
这里所谓两个本质相同的表达式是指可以通过交换其中一个表达式中参加和运算的各个数的位置而直接得到另一个表达式。
试编程求解自然数 n 可以写成多少种本质不同的质数和表达式。
输入输出格式
输入格式:
文件中的每一行存放一个自然数 n(2 < n < 200) 。
输出格式:
依次输出每一个自然数 n 的本质不同的质数和表达式的数目。
输入输出样例
2
200
9845164
分析:虽然可以用dp给秒掉,但这道题还可以用来练习一下母函数.构造如下的母函数:G(x) = (1 + x^2 + x^4 + x^6+......) * (1 + x^3 + x^6 + x^9 +......) * (1 + x^5 + x^10 + x^15 + ......) * ......
套用模板,看一下对应次数的系数是多少就可以了.
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> using namespace std; bool vis[];
int prime[], tot, n, ans[]; void init()
{
for (int i = ; i <= ; i++)
{
if (!vis[i])
prime[++tot] = i;
for (int j = ; j <= tot; j++)
{
int t = prime[j] * i;
if (t > )
break;
vis[t] = ;
if (i % prime[j] == )
break;
}
}
} int main()
{
init();
ans[] = ;
for (int i = ; i <= tot; i++)
for (int j = ; j >= ; j--)
if (ans[j])
for (int k = prime[i]; k + j <= ; k += prime[i])
ans[k + j] += ans[j];
while (scanf("%d",&n) != EOF)
printf("%d\n", ans[n]); return ;
}
洛谷P2563 [AHOI2001]质数和分解的更多相关文章
- 洛谷 P2563 [AHOI2001]质数和分解
洛谷 P2563 [AHOI2001]质数和分解 题目描述 任何大于 1 的自然数 n 都可以写成若干个大于等于 2 且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能 ...
- 洛谷 P2563 [AHOI2001]质数和分解 题解
P2563 [AHOI2001]质数和分解 题目描述 任何大于 1 的自然数 n 都可以写成若干个大于等于 2 且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一 ...
- P2563 [AHOI2001]质数和分解
题目描述 任何大于 1 的自然数 n 都可以写成若干个大于等于 2 且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式.例如,9 的质数和表达式就有 ...
- [AHOI2001]质数和分解
[AHOI2001]质数和分解 题目描述 任何大于 1 的自然数 n 都可以写成若干个大于等于 2 且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形 ...
- 洛谷 [AHOI2001]质数和分解
题目描述 Description 任何大于 1 的自然数 n 都可以写成若干个大于等于 2 且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式.例 ...
- 洛谷p1072 gcd,质因数分解
/* 可以得a>=c,b<=d,枚举d的质因子p 那么a,b,c,d,x中包含的p个数是ma,mb,mc,md,mx 在gcd(a,x)=c中 ma<mc => 无解 ma=m ...
- 洛谷P2667 超级质数 [2017年6月计划 数论05]
P2667 超级质数 题目背景 背景就是描述,描述就是背景...... 题目描述 一个质数如果从个位开始,依次去掉一位数字,两位数字,三位数字......直到只剩一位数字中间所有剩下的数都是质数,则称 ...
- 【题解】洛谷P3200 [HNOI2009] 有趣的数列(卡特兰数+质因数分解)
洛谷P3200:https://www.luogu.org/problemnew/show/P3200 思路 这题明显是卡特兰数的题型咯 一看精度有点大 如果递推卡特兰数公式要到O(n2) 可以证明得 ...
- 洛谷P1217回文质数-Prime Palindrome回溯
P1217 [USACO1.5]回文质数 Prime Palindromes 题意:给定一个区间,输出其中的回文质数: 学习了洛谷大佬的回溯写法,感觉自己写回溯的能力不是很强: #include &l ...
随机推荐
- 微信小程序转换为百度小程序
据粗略预估,微信小程序和百度小程序,有至少90%以上的相似代码,而且api的参数和返回的数据都是一致的,有一些不一致的将做如下介绍:.wxml文件,改成后辍名.swan.wxss文件,改成后辍名为.c ...
- 从零开始的Python学习Episode 13——常用模块
模块 一.time模块 时间戳(timestamp) :时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量. 元组(struct_time) :struct_time元组共有9 ...
- 调试和开发npm模块的方式
ln -s(软连接) 假设my-project是运行npm模块的项目,vue-router是我们需要调试的npm模块 将vue-router下载到与my-project同级目录中. git clone ...
- High School: Become Human(数学思维)
Year 2118. Androids are in mass production for decades now, and they do all the work for humans. But ...
- HDU 5464 Clarke and problem 动态规划
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5464 Clarke and problem Accepts: 130 Submissions: ...
- 《我是一只it小小鸟》观后感
在这个学期开始的时候我们的老师推荐给我们这本书.在很多的网站上只要一提到IT,总会有人推荐这本书,我在读这本书之前看了很多关于它的书评,其中有一位网友的一句话让我对它产生了很大的兴趣:“印象最深的是书 ...
- Web站点性能-宏观手段
1,增加服务器配置,购买性能更强的服务器,cpu.增加内存.增加硬盘(换更大更好的硬盘): 2,修改优化程序: 1)增加缓存: 2)优化代码,优化sql: 3)分离静态资源和动态页面: 3,对服务承担 ...
- 继承&成员函数&覆盖
//成员函数. /* 当子父类中出现成员函数一模一样的情况,会运行子类的函数. 这种现象,称为覆盖操作.这时函数在子父类中的特性. 函数两个特性: 1,重载.同一个类中.overload 2,覆盖.子 ...
- erlang node time ticket
Erlang doesn't detect net splits by itself. You could start looking atnet_kernel:set_net_ticktime/2 ...
- 使用字符界面 qemu-kvm 创建虚拟机
qemu-kvm的基本用法:指定系统类型,CPU运行模式,NUMA(Non Uniform Memory Access Architecture), 软驱设备,光驱设备,硬件设备 # 查看qemu ...