POJ 3421 X-factor Chains | 数论
题意:
给一个x,求最长的排列满足开头是1,结尾是x,前一个数是后一个数的因子
输出长度和这样序列的个数
题解:
把x分解质因数,质因数个数就是答案,接下来考虑怎么求个数
显然这是一个可重集合全排列问题,设有n个元素
答案就是n!/每个元素出现次数的阶乘
#include<cstdio>
#include<algorithm>
#include<cstring>
typedef long long ll;
#define N 2000
using namespace std;
int prime[N],n,cnt[N],pcnt,sum;
ll jc[];
bool isp[N];
void init()
{
memset(isp,,sizeof(isp));
isp[]=;
for (int i=;i<N;i++)
{
if (isp[i]==)
prime[++pcnt]=i;
for (int j=;j<=pcnt && i*prime[j]<N;j++)
{
isp[i*prime[j]]=;
if (i%prime[j]==) break;
}
}
}
int main()
{
jc[]=;
for (int i=;i<=;i++)
jc[i]=jc[i-]*i;
init();
while (scanf("%d",&n)!=EOF)
{
ll ans=;
memset(cnt,,sizeof(cnt));
sum=;
for (int i=;i<=pcnt;i++)
{
if (n==) break;
while (n%prime[i]==)
n/=prime[i],cnt[i]++,sum++;
}
if (n>)
sum++;
ans=jc[sum];
for (int i=;i<=pcnt;i++)
ans/=jc[cnt[i]];
printf("%d %lld\n",sum,ans);
}
return ;
}
POJ 3421 X-factor Chains | 数论的更多相关文章
- poj 3421 X-factor Chains——质因数分解
题目:http://poj.org/problem?id=3421 记忆化搜索竟然水过去了.仔细一想时间可能有点不对,但还是水过去了. #include<iostream> #includ ...
- POJ 3421 X-factor Chains
线型素数筛+质因素分解+组合数. AC后发现这样做效率有点低..766ms. #include<stdio.h> #include<string.h> #include< ...
- Mathematics:X-factor Chains(POJ 3421)
X链条 题目大意,从1到N,1 = X0, X1, X2, …, Xm = X中间可以分成很多数,另Xi < Xi+1 Xi 可以整除Xi+1 ,求最大长度m和m长度的链有多少条 思路: 很简单 ...
- POJ 3421 X-factor Chains (因式分解+排列组合)
题意:一条整数链,要求相邻两数前一个整除后一个.给出链尾的数,求链的最大长度以及满足最大长度的不同链的数量. 类型:因式分解+排列组合 算法:因式分解的素因子个数即为链长,链中后一个数等于前一个数乘以 ...
- POJ 3421 X-factor Chains(构造)
这条链依次乘一个因子.因为n<2^20,sqrt(n)分解因子,相同的因子相对顺序取一个. 组合公式计算一下就好. #include<cstdio> #include<iost ...
- POJ 3421分解质因数
X-factor Chains Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7375 Accepted: 2340 D ...
- ACM: POJ 1061 青蛙的约会 -数论专题-扩展欧几里德
POJ 1061 青蛙的约会 Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%lld & %llu Descr ...
- POJ 3421
X-factor Chains Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5111 Accepted: 1622 D ...
- poj 2635 The Embarrassed Cryptographer(数论)
题目:http://poj.org/problem?id=2635 高精度求模 同余模定理. 题意: 给定一个大数K,K是两个大素数的乘积的值.再给定一个int内的数L 问这两个大素数中最小的一个是 ...
随机推荐
- Linux相关知识
1.设置代理 sudo vi /etc/apt/apt.conf Acquire::http::Proxy "http://proxy_address:8080/"; 2.生成 s ...
- python--Wrapper
然后给大家介绍的是Wrapper(装饰器),使用广泛.python笔试,面试的话也会百分百问到的,基础和中级的知识储备还是必用的. 让我们开始. 先来一些基础相关知识 *args,**kwargs的区 ...
- 如果理解&&运算符和各类数值的布尔值
&&(且运算符):表示二者都为true才为true: 短路原则:例如 : a && b; 当a为true时,程序无论如何都会走b,而不管b为true或者false ...
- 【HTML】placeholder中换行
表示回车 表示换行 案例 <textarea rows="10" placeholder="测试换行 新的一行"></textarea>
- RESTful API架构和oauth2.0认证机制(概念版)
1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的 ...
- keil5的安装及问题
win8+keil 注意,在进行破解的时候首先要打开一个工程,而且keil要用管理员的身份进行运行, 才可以破解完成 发现打开之后,出现这样的错误. 原因是因为在创建工程的时候在下图中点了是,要点否才 ...
- 硬盘安装Windows Server 2008(解决系统盘符变成D盘)
硬盘安装Windows 2008系统方法 操作系统最好用的无疑是server 2003,但是现在Server 2003支持的软件越来越少,很多是故意不支持Server 2003了, 像php5.5以上 ...
- iOS各个版本的特点
一.导航控制器中: iOS7: 栈顶控制器默认是320*480:控制器有64的高度看不见:
- Java虚拟机之搜索class文件
Java命令 Java虚拟机的工作是运行Java应用程序.和其他类型的应用程序一样,Java应用程序也需要一个入口点,这个入口点就是我们熟知的main()方法.如果一个类包含main()方法,这个类就 ...
- python几个复习例子
1.实现1-100的所有的和,程序代码如下: sum = 0 for i in xrange(1,101): sum +=i print (sum) 程序运行结果: 2.实现1-500所有奇数的和,程 ...