质数和分解(动态规划)
2016-04-08 21:48
239 查看
Description 任何大于 1 的自然数 n,都可以写成若干个大于等于
2 ,且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。例如9
的质数和表达式就有四种本质不同的形式:9 = 2+5+2 = 2+3+2+2 = 3+3+3 = 2+7
。 这里所谓两个本质相同的表达式是指可以通过交换其中一个表达式中参加和运算的各个数的位置而直接得到另一个表达式。 试编程求解自然数 n
可以写成多少种本质不同的质数和表达式。Input 每一行存放一个自然数 n ,
2≤n≤200
Output 输出每一个自然数 n
的本质不同的质数和表达式的数目
Sample
Input
Output
vara,s:array[0..200]of longint;f:array[0..200]of boolean;n,i,j,k:longint;beginreadln(n);fillchar(f,sizeof(f),true);f[1]:=false;for i:=2 to n doif f[i] then
for j:=2 to n div i dof[i*j]:=false;for i:=1 to n doif f[i] then
begin inc(k); a[k]:=i; end;s[0]:=1;for i:=1 to k dofor j:=a[i]
to n dos[j]:=s[j]+s[j-a[i]];writeln(s
);end.版权属于: Chris原文地址: http://blog.sina.com.cn/s/blog_83ac6af80102vjrn.html转载时必须以链接形式注明原始出处及本声明。
2 ,且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。例如9
的质数和表达式就有四种本质不同的形式:9 = 2+5+2 = 2+3+2+2 = 3+3+3 = 2+7
。 这里所谓两个本质相同的表达式是指可以通过交换其中一个表达式中参加和运算的各个数的位置而直接得到另一个表达式。 试编程求解自然数 n
可以写成多少种本质不同的质数和表达式。Input 每一行存放一个自然数 n ,
2≤n≤200
Output 输出每一个自然数 n
的本质不同的质数和表达式的数目
Sample
Input
2Sample
Output
1
解题思路:
这其实就是背包问题的方案总数,不过要加多一个筛素数的过程。
s[j]表示不超过j的最大方案数,状态转移方程为:
s[j]=s[j]+s[j-a[i]]
(1<=i<=k,a[i]<=j<=n)
s 即为所求。
时间复杂度:O(n^2)
程序:
vara,s:array[0..200]of longint;f:array[0..200]of boolean;n,i,j,k:longint;beginreadln(n);fillchar(f,sizeof(f),true);f[1]:=false;for i:=2 to n doif f[i] then
for j:=2 to n div i dof[i*j]:=false;for i:=1 to n doif f[i] then
begin inc(k); a[k]:=i; end;s[0]:=1;for i:=1 to k dofor j:=a[i]
to n dos[j]:=s[j]+s[j-a[i]];writeln(s
);end.版权属于: Chris原文地址: http://blog.sina.com.cn/s/blog_83ac6af80102vjrn.html转载时必须以链接形式注明原始出处及本声明。
相关文章推荐
- 科技庄园(动态规划)
- 科技庄园(动态规划)
- 打包(动态规划)
- 打包(动态规划)
- 暗黑游戏(动态规划)
- 暗黑游戏(动态规划)
- 逃亡的准备(动态规划)
- 逃亡的准备(动态规划)
- 最小乘车费用(动态规划)
- 最小乘车费用(动态规划)
- 1996年分区联赛提高组之四&nbsp;砝码称…
- 1996年分区联赛提高组之四&nbsp;砝码称…
- 竞赛总分(动态规划)
- 竞赛总分(动态规划)
- 2006年分区联赛提高组之二&nbsp;金明的…
- 2006年分区联赛提高组之二&nbsp;金明的…
- USACO&nbsp;2.3&nbsp;货币系统
- USACO&nbsp;2.3&nbsp;货币系统
- 分组背包(动态规划)
- 分组背包(动态规划)