博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1025: [SCOI2009]游戏 - BZOJ
阅读量:4965 次
发布时间:2019-06-12

本文共 1723 字,大约阅读时间需要 5 分钟。

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。
Output
包含一个整数,可能的排数。
Sample Input
【输入样例一】
3
【输入样例二】
10
Sample Output
【输出样例一】
3
【输出样例二】
16
【数据规模和约定】
30%的数据,满足 1 <= N <= 10 。
100%的数据,满足 1 <= N <= 1000 。

 

我傻叉了,写完WA了半天,然后反应过来,哦,他是在求最小公倍数啊(没有看清题目就乱搞........最开始还以为是乘积的个数)

先筛素数,然后枚举每个因子选几次方,然后减去这个数的几次方,枚举下一个质数

用记忆化搜索很好写

1 const 2     maxn=1010; 3 var 4     n,tot:longint; 5     flag:array[0..maxn]of boolean; 6     zhi:array[0..maxn]of longint; 7     f:array[0..maxn,0..maxn]of int64; 8  9 procedure shai;10 var11     i,j:longint;12 begin13     for i:=2 to n do14       begin15         if flag[i]=false then16         begin17           inc(tot);18           zhi[tot]:=i;19         end;20         for j:=1 to tot do21           begin22             if zhi[j]*i>n then break;23             flag[zhi[j]*i]:=true;24             if i mod zhi[j]=0 then break;25           end;26       end;27 end;28 29 function fx(x,a:longint):int64;30 var31     i,s:longint;32 begin33     if f[x,a]>0 then exit(f[x,a]);34     fx:=0;35     if zhi[x]>a then exit(1);36     if x>tot then exit(1);37     s:=1;38     inc(fx,fx(x+1,a));39     for i:=1 to a div zhi[x] do40       begin41         s:=s*zhi[x];42         if s>a then break;43         inc(fx,fx(x+1,a-s));44       end;45     f[x,a]:=fx;46 end;47 48 begin49     read(n);50     shai;51     write(fx(1,n));52 end.
View Code

 

转载于:https://www.cnblogs.com/Randolph87/p/3628486.html

你可能感兴趣的文章
利用sed把一行的文本文件改成每句一行
查看>>
Android应用开发:核心技术解析与最佳实践pdf
查看>>
python——爬虫
查看>>
孤荷凌寒自学python第五十八天成功使用python来连接上远端MongoDb数据库
查看>>
求一个字符串中最长回文子串的长度(承接上一个题目)
查看>>
简单权限管理系统原理浅析
查看>>
springIOC第一个课堂案例的实现
查看>>
求输入成绩的平均分
查看>>
php PDO (转载)
查看>>
wordpress自动截取文章摘要代码
查看>>
[置顶] 一名优秀的程序设计师是如何管理知识的?
查看>>
scanf和gets
查看>>
highcharts 图表实例
查看>>
ubuntu下如何查看用户登录及系统授权相关信息
查看>>
秋季学期学习总结
查看>>
SpringBoot 优化内嵌的Tomcat
查看>>
【LaTeX】E喵的LaTeX新手入门教程(1)准备篇
查看>>
highcharts曲线图
查看>>
extjs动态改变样式
查看>>
PL/SQL Developer 查询的数据有乱码或者where 字段名=字段值 查不出来数据
查看>>