描述


http://www.lydsy.com/JudgeOnline/problem.php?id=1025

分析


对于\(n\),转一圈回来之后其实是好几个环各转了整数圈.这些环中的数为\(1,2,3,...,n\).

所以我们要求的就是将\(n\)分解成若干个数的和,这些数的最小公倍数的个数.

我们用质因数分解的思路求最小公倍数.先筛出素数表.

用\(f[i][j]\)表示使用前\(i\)种素数构成数字\(j\)的种类数.

 #include <bits/stdc++.h>
using namespace std; typedef long long ll;
const int maxn=+;
int n,cnt;
bool vis[maxn];
int p[maxn];
ll f[maxn][maxn];
inline void prime(){
for(int i=;i<=n;i++){
if(vis[i]) continue;
p[++cnt]=i;
for(int j=i*i;j<=n;j+=i) vis[j]=true;
}
}
inline void solve(){
for(int i=;i<=n;i++) f[][i]=;
for(int i=;i<=cnt;i++) f[i][]=;
for(int i=;i<=cnt;i++)for(int j=;j<=n;j++){
f[i][j]=f[i-][j];
for(int k=p[i];k<=j;k*=p[i])
f[i][j]+=f[i-][j-k];
}
printf("%lld\n",f[cnt][n]);
}
int main(){
scanf("%d",&n);
prime();
solve();
return ;
}

1025: [SCOI2009]游戏

Time Limit: 1 Sec  Memory Limit: 162 MB
Submit: 1912  Solved: 1235
[Submit][Status][Discuss]

Description

  windy学会了一种游戏。对于1到N这N个数字,都有唯一且不同的1到N的数字与之对应。最开始windy把数字按
顺序1,2,3,……,N写一排在纸上。然后再在这一排下面写上它们对应的数字。然后又在新的一排下面写上它们
对应的数字。如此反复,直到序列再次变为1,2,3,……,N。
如: 1 2 3 4 5 6 对应的关系为 1->2 2->3 3->1 4->5 5->4 6->6
windy的操作如下
1 2 3 4 5 6
2 3 1 5 4 6
3 1 2 4 5 6
1 2 3 5 4 6
2 3 1 4 5 6
3 1 2 5 4 6
1 2 3 4 5 6
这时,我们就有若干排1到N的排列,上例中有7排。现在windy想知道,对于所有可能的对应关系,有多少种可
能的排数。

Input

  包含一个整数N,1 <= N <= 1000

Output

  包含一个整数,可能的排数。

Sample Input

【输入样例一】
3
【输入样例二】
10

Sample Output

【输出样例一】
3
【输出样例二】
16

HINT

Source

最新文章

  1. H5+CSS3知识点
  2. Lind.DDD.Domain领域模型介绍
  3. [java]删除数组中的某一个元素
  4. 2008ISBN号码
  5. git 笔记1
  6. 开源PLM软件Aras详解四 ItemType的概念
  7. MySql开启事务
  8. WPF学习系列之七 (样式与行为)
  9. Android项目Tab类型主界面大总结 Fragment+TabPageIndicator+ViewPager
  10. [国嵌攻略][077][Linux时间编程]
  11. CentOS 7 安装Redis4.0
  12. SFTP多文件上传,删除
  13. 嵌入式常用技术概览之IIC(I2C)
  14. Qt-Designer打不开
  15. AtCoder Regular Contest 102 D - All Your Paths are Different Lengths
  16. webpack4 自学笔记三(提取公用代码)
  17. 20170929php
  18. 鸟哥的Linux私房菜——第十九章:例行命令的建立
  19. nginx_lua_waf 部署、测试记录
  20. 深入理解java虚拟机---java内存区域与内存溢出异常---2堆栈溢出

热门文章

  1. c数组与指针
  2. C#笔记1:异常
  3. C#中类型分析中的常见问题 Type - 转
  4. oracle 建立主键与索引【转】
  5. Apache Spark探秘:三种分布式部署方式比较
  6. Maven--(一个坑)在settings.xml文件中添加mirrors导致无法新建Maven项目
  7. Linux开机执行bash脚本
  8. android C/C++ source files 全局宏定义 .
  9. KMP笔记√//找最大子串,前缀自匹配长度
  10. Codeforces D546:Soldier and Number Game