1025: [SCOI2009]游戏

Time Limit: 1 Sec  Memory Limit: 162 MB

Submit: 2471  Solved: 1615

[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

题解

对于一种对应关系,内部由很多环构成,排数就等于这些环上点数的最小公倍数。

所以将问题转化为:将n分成若干个正整数,求最小公倍数的种类。

设lcm为最小公倍数,那么有唯一分解可以得到lcm=p1^k1*p2^k2*…*pn^kn,当这些数分别为p1^k1,p2^k2…pn^kn时,满足所有数最小公倍数为lcm并且此时所有数的和最小。

如果对于一个lcm,所有数的和小于n的话,这个lcm一定可以组成,因为剩下的数用1补全即可。

设f[i][j]为前i种质数,p1^k1+p2^k2+…+pn^kn=j时的方案数,对于每个质数,枚举k即可。

代码

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<iostream>
#define LL long long
using namespace std;
const int N=1005;
int n,tot;
int pri[N],ispri[N];
LL ans;
LL f[N][N];
void prime(){for(int i=2;i<=n;i++){if(!ispri[i])pri[++tot]=i;for(int j=1;j<=tot&&i*pri[j]<=n;j++){ispri[i*pri[j]]=1;if(i%pri[j]==0)break;}}
}
int main(){scanf("%d",&n);prime();f[0][0]=1;for(int i=1;i<=tot;i++){for(int j=0;j<=n;j++){f[i][j]=f[i-1][j];}for(int j=pri[i];j<=n;j*=pri[i]){for(int k=0;k<=n-j;k++){f[i][k+j]+=f[i-1][k];}}}for(int i=0;i<=n;i++)ans+=f[tot][i];printf("%lld\n",ans);return 0;
}

转载于:https://www.cnblogs.com/chezhongyang/p/7690578.html

BZOJ 1025: [SCOI2009]游戏相关推荐

  1. [BZOJ] 1025 [SCOI2009]游戏

    Time Limit: 1 Sec Memory Limit: 162 MB Submit: 2700 Solved: 1774 [Submit][Status][Discuss] Descripti ...

  2. bzoj千题计划116:bzoj1025: [SCOI2009]游戏

    http://www.lydsy.com/JudgeOnline/problem.php?id=1025 题目转化: 将n分为任意段,设每段的长度分别为x1,x2,-- 求lcm(xi)的个数 有一个 ...

  3. bzoj-1025 [SCOI2009]游戏

    1025: [SCOI2009]游戏 Time Limit: 1 Sec  Memory Limit: 162 MB Description windy学会了一种游戏.对于1到N这N个数字,都有唯一且 ...

  4. [bzoj1025][SCOI2009]游戏 (分组背包)

    Description windy学会了一种游戏.对于1到N这N个数字,都有唯一 且不同的1到N的数字与之对应.最开始windy把数字按顺序1,2,3,--,N写一排在纸上.然后再在这一排下面写上它们 ...

  5. BZOJ P4554 [Tjoi2016Heoi2016]游戏

    BZOJ P4554 [Tjoi2016&Heoi2016]游戏 题目 Description 在2016年,佳缘姐姐喜欢上了一款游戏,叫做泡泡堂.简单的说,这个游戏就是在一张地图上放上若干个 ...

  6. BZOJ 1443: [JSOI2009]游戏Game

    1443: [JSOI2009]游戏Game Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1077  Solved: 484 [Submit][S ...

  7. bzoj 4515: [Sdoi2016]游戏

    Description Alice 和 Bob 在玩一个游戏. 游戏在一棵有 n 个点的树上进行.最初,每个点上都只有一个数字,那个数字是 123456789123456789. 有时,Alice 会 ...

  8. BZOJ 1026 [SCOI2009]windy数

    1026: [SCOI2009]windy数 Description windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道,在A和B之间 ...

  9. BZOJ 1854: [Scoi2010]游戏( 二分图最大匹配 )

    匈牙利算法..从1~10000依次找增广路, 找不到就停止, 输出答案. --------------------------------------------------------------- ...

最新文章

  1. Angular的_zone.onMicrotaskEmpty最终会通过changeDetect重新刷新视图
  2. Visual Studio 20xx试用版升级为正式版(WIN7同样有效)图解、附带序列号
  3. Codeforces 678E. Another Sith Tournament(概率DP,状压)
  4. 日赚4.5亿!腾讯游戏业务增长惊人:最赚钱的还是它两!
  5. 电商美工中秋节电商淘宝页面设计模板素材,临摹参考框架
  6. java socket 缓冲_关于socket的发送缓冲区网上有诸多的讨论,这里个人小结一下,希望对以后有些帮助。首先,看下面一段代码,...
  7. 新手小白学JAVA API手册使用方式说明
  8. GPT-3的最强落地方式?陈丹琦提出小样本微调方法,比普通微调提升11%
  9. 机器学习常用衡量标准
  10. 技术赋能广告策略全升级,爱奇艺开启框内广告营销新篇章
  11. Protel99se电路设计速成-熊健-专题视频课程
  12. 帝国CMS Table '***.phome_ecms_news_data_' doesn't exist
  13. 区块链与ICO,了解一下
  14. 如何画出优秀的软件架构图?
  15. 【英语语法】定语从句
  16. 【HCIE-RS 天梯路】NDP
  17. can-utils使用
  18. 小旋风asp服务器安装了还是打不开asp文件,小旋风AspWebServer - 本地架设ASP网站
  19. MIT线性代数笔记二 矩阵消元
  20. LeetCode每日一题——12.11Dota2 参议院

热门文章

  1. 楷书和草书哪幅更具有艺术性?
  2. FreeSync是什么
  3. 书法是什么?书法的美从何说起?
  4. 去越南旅游一个人玩一个月需要多少人民币?
  5. 别墅客厅吊顶怎么做?有哪些注意事项?
  6. 给初创业者的几点建议
  7. 其实程序员高工资,好多时候就是加班和自己硬撑出来的
  8. solidity之call相关函数
  9. MySql使用TEXT/BLOB类型的几点注意
  10. Java-线程中sleep()、wait()和notify()和notifyAll()、suspend和resume()、yield()、join()、interrupt()的用法和区别