很容易发现行数就是lcm环长,也就是要求和为n的若干数lcm的个数
有结论若p1a1+p2a2+...+pmam<=n,则ans=p1a1*p2a2*..*pmam是n的一个可行答案。(https://blog.csdn.net/wyfcyx_forever/article/details/40211739有证明
所以我们设f[i][j]为计算了前i个质数,p1a1+p2a2+...+pi^ai=j的lcm数量,转移的话直接枚举当前新增的p极它的指数加一下即可
#include<iostream>
#include<cstdio>
using namespace std;
const int N=1005;
int n,p[N],tot;
long long f[N][N];
bool v[N];
int main()
{
scanf("%d",&n);
v[1]=1;
for(int i=2;i<=1000;i++)
{
if(!v[i])
p[++tot]=i;
for(int j=1;j<=tot&&i*p[j]<=1000;j++)
{
v[i*p[j]]=1;
if(i%p[j]==0)
break;
}
}
for(int i=0;i<=tot;i++)
f[i][0]=1;
for(int j=0;j<=n;j++)
f[0][j]=1;
for(int i=1;i<=tot;i++)
for(int j=1;j<=n;j++)
{
f[i][j]=f[i-1][j];
for(int k=p[i];k<=j;k*=p[i])
f[i][j]+=f[i-1][j-k];
}
printf("%lld\n",f[tot][n]);
return 0;
}
bzoj 1025: [SCOI2009]游戏【数学+dp】的更多相关文章
-
BZOJ 1025: [SCOI2009]游戏( 背包dp )
显然题目要求长度为n的置换中各个循环长度的lcm有多少种情况. 判断一个数m是否是满足题意的lcm. m = ∏ piai, 当∑piai ≤ n时是满足题意的. 最简单我们令循环长度分别为piai, ...
-
[BZOJ 1025] [SCOI2009] 游戏 【DP】
题目链接:BZOJ - 1025 题目分析 显然的是,题目所要求的是所有置换的每个循环节长度最小公倍数的可能的种类数. 一个置换,可以看成是一个有向图,每个点的出度和入度都是1,这样整个图就是由若干个 ...
-
BZOJ 1025: [SCOI2009]游戏 [置换群 DP]
传送门 题意:求$n$个数组成的排列变为升序有多少种不同的步数 步数就是循环长度的$lcm$..... 那么就是求$n$划分成一些数几种不同的$lcm$咯 然后我太弱了这种$DP$都想不出来.... ...
-
[bzoj 1025][SCOI2009]游戏(DP)
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1025 分析:首先这个问题等价于A1+A2+……Ak=n,求lcm(A1,A2,……,Ak)的种 ...
-
BZOJ 1025 [SCOI2009]游戏
1025: [SCOI2009]游戏 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1533 Solved: 964[Submit][Status][ ...
-
bzoj 1025 [SCOI2009]游戏(置换群,DP)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1025 [题意] 给定n,问1..n在不同的置换下变回原序列需要的不同排数有多少种. [ ...
-
BZOJ 1025 [SCOI2009]游戏 (DP+分解质因子)
题意: 若$a_1+a_2+\cdots+a_h=n$(任意h<=n),求$lcm(a_i)$的种类数 思路: 设$lcm(a_i)=x$, 由唯一分解定理,$x=p_1^{m_1}+p_2^{ ...
-
BZOJ 1025 SCOI2009 游戏 动态规划
标题效果:特定n.行定义一个替代品1~n这种更换周期发生后,T次要(T>0)返回到原来的顺序 找到行的所有可能的数 循环置换分解成若干个,然后行位移数是这些周期的长度的最小公倍数 因此,对于一些 ...
-
【BZOJ】1025: [SCOI2009]游戏(置换群+dp+特殊的技巧+lcm)
http://www.lydsy.com/JudgeOnline/problem.php?id=1025 首先根据置换群可得 $$排数=lcm\{A_i, A_i表示循环节长度\}, \sum_{i= ...
随机推荐
-
学习总结 之 WebApi服务监控 log4net记录监控日志
在请求WebApi 的时候,我们更想知道在请求数据的时候,调用了哪个接口传了什么参数过来,调用这个Action花了多少时间,有没有人恶意请求.我们可以通过记录日志,对Action进行优化,可以通过日志 ...
-
将ASP.NET Core应用程序部署至生产环境中(CentOS7)
这段时间在使用Rabbit RPC重构公司的一套系统(微信相关),而最近相关检验(逻辑测试.压力测试)已经完成,接近部署至线上生产环境从而捣鼓了ASP.NET Core应用程序在CentOS上的部署方 ...
-
XPS1330 作为Linux服务器之安装配置计划
# Task 状态 完成时间 备注 博文链接 1. 打通SSH 未开始 -- 安装系统后已经具备 -- 2. 打通FTP 未开始 -- 安装系统后已经具备 -- 3. ...
-
Java---软件试用次数(Properties类的简单使用)
编程练习(软件试用次数) 实现一个如下的软件小功能: 记录软件运行的次数并在每次运行时提示已经运行的次数.如果运行次数大于5次,软件不再运行并给出提示:试用次数已到,请注册! 本代码只简单的介绍了软件 ...
-
bootstrap 模版
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8& ...
-
【原创】iOS图片预览(支持缩放和移动)
1.传入图片 PreViewController.h: #import <UIKit/UIKit.h> @interface PreViewController : UIViewContr ...
-
zabbix如何监控进程
zabbix中item的配置如下: zabbix中trigger的配置如下:
-
Android+Eclipse修改包路径
在开发过程中发现之前定的包名或是路径不太合理,怎么修改呢?选中要修改的包,按F2按键,如下图: 图1 上图是我修改后的,修改前的包名是com.example.appcenter,自改为com.exam ...
-
python datetime.datetime is not JSON serializable
1.主要是python list转换成json时对时间报错:datetime.datetime(2014, 5, 23, 9, 33, 3) is not JSON serializable. 2. ...
-
PyCharm 2018实现远程调试代码
pycharm是一个非常强大的python开发工具,现在很多代码最终在线上跑的环境都是linux,而开发环境可能还是windows下开发,这就需要经常在linux上进行调试,或者在linux对代码进行 ...