题意:

找环

有多少种不同的排列

使排列数目为n

题解:

考虑dp

f[i][j]表示前i个质数,和为j的方案数

然后转移一下即可

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=;
int n,tot,mark[N],pri[N];
ll ans,f[N][N];
int main()
{
scanf("%d",&n);
for (int i=;i<N;i++)
{
if (!mark[i])pri[++tot]=i;
for (int j=;j<=tot&&i*pri[j]<=;j++)
{
mark[i*pri[j]]=;
if (i%pri[j]==)break;
}
}
f[][]=;
for(int i=;i<=tot;i++)
{
for (int j=;j<=n;j++)f[i][j]=f[i-][j];
for (int j=pri[i];j<=n;j*=pri[i])
for (int k=;k<=n-j;k++)f[i][k+j]+=f[i-][k];
}
for (int i=;i<=n;i++)ans+=f[tot][i];
printf("%lld",ans);
return ;
}

bzoj1025的更多相关文章

  1. 【bzoj1025】游戏

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

  2. [SCOI2009][bzoj1025]游戏

    [SCOI2009][bzoj1025]游戏 标签: DP 置换 题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1025 题解 很套路的题目 ...

  3. 【BZOJ1025】[SCOI2009]游戏(动态规划)

    [BZOJ1025][SCOI2009]游戏(动态规划) 题面 BZOJ 洛谷 题解 显然就是一个个的置换,那么所谓的行数就是所有循环的大小的\(lcm+1\). 问题等价于把\(n\)拆分成若干个数 ...

  4. [BZOJ1025] [SCOI2009]游戏 解题报告

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

  5. BZOJ1025 [SCOI2009]游戏 【置换群 + 背包dp】

    题目链接 BZOJ1025 题解 题意就是问一个\(1....n\)的排列在同一个置换不断重复下回到\(1...n\)可能需要的次数的个数 和置换群也没太大关系 我们只需知道同一个置换不断重复,实际上 ...

  6. BZOJ1025: [SCOI2009]游戏

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

  7. bzoj1025: [SCOI2009] 游戏 6

    DP. 每种排法的长度对应所有循环节长度的最小公倍数. 所以排法总数为和为n的几个数的最小公倍数的总数. #include<cstdio> #include<algorithm> ...

  8. 2018.09.02 bzoj1025: [SCOI2009]游戏(计数dp+线筛预处理)

    传送门 要将所有置换变成一个轮换,显然轮换的周期是所有置换长度的最小公倍数. 于是我们只需要求长度不超过n,且长度最小公倍数为t的不同置换数. 而我们知道,lcm只跟所有素数的最高位有关. 因此lcm ...

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

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

随机推荐

  1. mysql备份的4种方式

    mysql备份的4种方式 转载自:https://www.cnblogs.com/SQL888/p/5751631.html 总结: 备份方法 备份速度 恢复速度 便捷性 功能 一般用于 cp 快 快 ...

  2. 1.Anaconda安装Tensorflow报错UnicodeDecodeError: 'utf-8' codec can't decode ## invalid start byte的问题之解决

    安装TensorFlow pip install --ignore-installed --upgrade tensorflow 报错: UnicodeDecodeError: 'utf-8' cod ...

  3. MySql数据库批量备份命令

    rd d:\mysql_data-BAK /s /qmd d:\mysql_data-BAKxcopy d:\mysql_data d:\mysql_data-BAK /e

  4. 超全超详细的 ADB 用法大全

    原文地址:原文地址 基本用法 命令语法 为命令指定目标设备 启动/停止 查看 adb 版本 以 root 权限运行 adbd 指定 adb server 的网络端口 设备连接管理 查询已连接设备/模拟 ...

  5. enum 枚举类型默认值

    enum value { one, two, three, four }; 默认值

  6. forEach方法的实现

    var arr = [1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5]; Array.prototype.forEach = Array.prototype.fo ...

  7. 哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级) Solution

    A: Solved. 分别处理出每个%7后余数的数字个数,再组合一下 #include <bits/stdc++.h> using namespace std; #define ll lo ...

  8. python连接mysql,redis类方法

    #coding:utf8 import pymysql import redis import conf '''MYSQL DB Object''' class Mysql(): def __init ...

  9. python安装mysql-python1.2.5

    首先安装好python 然后安装C++ Microsoft Visual C++ Compiler for Python 2.7 下载后双击安装 登录https://pypi.python.org/p ...

  10. FindBugs详解

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...