很容易发现行数就是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】的更多相关文章

  1. BZOJ 1025: [SCOI2009]游戏( 背包dp )

    显然题目要求长度为n的置换中各个循环长度的lcm有多少种情况. 判断一个数m是否是满足题意的lcm. m = ∏ piai, 当∑piai ≤ n时是满足题意的. 最简单我们令循环长度分别为piai, ...

  2. [BZOJ 1025] [SCOI2009] 游戏 【DP】

    题目链接:BZOJ - 1025 题目分析 显然的是,题目所要求的是所有置换的每个循环节长度最小公倍数的可能的种类数. 一个置换,可以看成是一个有向图,每个点的出度和入度都是1,这样整个图就是由若干个 ...

  3. BZOJ 1025: [SCOI2009]游戏 [置换群 DP]

    传送门 题意:求$n$个数组成的排列变为升序有多少种不同的步数 步数就是循环长度的$lcm$..... 那么就是求$n$划分成一些数几种不同的$lcm$咯 然后我太弱了这种$DP$都想不出来.... ...

  4. [bzoj 1025][SCOI2009]游戏(DP)

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1025 分析:首先这个问题等价于A1+A2+……Ak=n,求lcm(A1,A2,……,Ak)的种 ...

  5. BZOJ 1025 [SCOI2009]游戏

    1025: [SCOI2009]游戏 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 1533  Solved: 964[Submit][Status][ ...

  6. bzoj 1025 [SCOI2009]游戏(置换群,DP)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1025 [题意] 给定n,问1..n在不同的置换下变回原序列需要的不同排数有多少种. [ ...

  7. 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^{ ...

  8. BZOJ 1025 SCOI2009 游戏 动态规划

    标题效果:特定n.行定义一个替代品1~n这种更换周期发生后,T次要(T>0)返回到原来的顺序 找到行的所有可能的数 循环置换分解成若干个,然后行位移数是这些周期的长度的最小公倍数 因此,对于一些 ...

  9. 【BZOJ】1025: [SCOI2009]游戏(置换群+dp+特殊的技巧+lcm)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1025 首先根据置换群可得 $$排数=lcm\{A_i, A_i表示循环节长度\}, \sum_{i= ...

随机推荐

  1. Java线程的5种状态及切换(透彻讲解)

    http://blog.csdn.net/pange1991/article/details/53860651

  2. poj2767,单向连通图判定,缩点+重新建图+新图DFS

    /*该题被博客里标记为中等题,30分钟内1A,掌握了算法就简单了,单向连通图判定,单向连通图缩点 后必然唯一存在出度为0的点和入度为0的点,并且从入度为0的点出发,可以遍历所有点后到达出度为0点 (一 ...

  3. openstack swift memcached

    如果生成的token总变,说明没有启动memcached: swift@vincent-virtual-machine /usr/bin $ memcached -p 11211 -m 64m -d ...

  4. Ajax系列之四:问题总结

    1.最经典的就是ie下的缓存问题了.  假设使用的是get.那么在ie下出现缓存问题.导致代码仅仅运行一次. 解决的方法就是加时间戳或者随机数,使url变为唯一,这样就不会出现ie  下的缓存问题了, ...

  5. easyui英文提示变中文

    近期玩JQuery easyUI,系统默认的日期和文本输入框提示英文.作为一个地道的中国人,是不是提示成中文.日期也显示成中文,是不是更人性化呢,下面为操作方法哦. 更改前效果 1 输入框提示为英文 ...

  6. ZOJ 3228 Searching the String (AC自己主动机)

    题目链接:Searching the String 解析:给一个长串.给n个不同种类的短串.问分别在能重叠下或者不能重叠下短串在长串中出现的次数. 能重叠的已经是最简单的AC自己主动机模板题了. 不能 ...

  7. android WIFI信息获取

    在androi中WIFI信息的获取能够通过系统提供的WIFI Service获取 [java]  WifiManager wifi_service = (WifiManager)getSystemSe ...

  8. HDU 5302(Connect the Graph- 构造)

    Connect the Graph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others ...

  9. mysql备份及还原

    mysql怎样复制数据库?或者说,将数据库拷贝到另外一台机? 按照我的理解,复制数据库,如果是: 1.直接拷贝数据库文件,应该先停数据服务,否则拷不出来.但是,生产机器,哪能说停就停呢? 2.在线拷贝 ...

  10. debian包之间的关系

    1 debian包之间存在两大类关系 第一,依赖 第二,冲突 2 依赖类关系 2.1 depends 2.2 pre-depends 2.3 recommends 2.4 suggests 2.5 e ...