博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj3421 X-factor Chains
阅读量:5066 次
发布时间:2019-06-12

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

题意:

Description

Given a positive integer X, an X-factor chain of length m is a sequence of integers,

1 = X0X1X2, …, Xm = X

satisfying

Xi < Xi+1 and Xi | Xi+1 where a | b means a perfectly divides into b.

Now we are interested in the maximum length of X-factor chains and the number of chains of such length.

Input

The input consists of several test cases. Each contains a positive integer X (X ≤ 220).

Output

For each test case, output the maximum length and the number of such X-factors chains.

Sample Input

23410100

Sample Output

1 11 12 12 24 6

思路:

一开始想到dp。令dp[i][j]表示长度为i,以j结尾的链的个数,于是dp[i+1][k] += dp[i][j] (j为k的因子),然而复杂度高,并不会优化。

后来发现要想链最长,只能从1开始,每次乘上这个数的某个质因子才行。于是就变成了分解质因子+排列组合的问题。

实现:

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 typedef long long ll; 9 10 ll fac[21];11 int x;12 13 void init()14 {15 fac[0] = 1;16 for (ll i = 1; i <= 20; i++)17 fac[i] = fac[i - 1] * i;18 }19 20 map
prime_factor(int n)21 {22 map
res;23 for (int i = 2; i * i <= n; i++)24 {25 while (n % i == 0)26 {27 res[i]++;28 n /= i;29 }30 }31 if (n != 1)32 res[n] = 1;33 return res;34 }35 36 int main()37 {38 init();39 while (scanf("%d", &x) != EOF)40 {41 map
f = prime_factor(x);42 map
::iterator it;43 ll res = 1;44 int cnt = 0;45 for (it = f.begin(); it != f.end(); it++)46 {47 res *= fac[it->second];48 cnt += it->second;49 }50 printf("%d %lld\n", cnt, fac[cnt] / res);51 }52 return 0;53 }

 

转载于:https://www.cnblogs.com/wangyiming/p/6443982.html

你可能感兴趣的文章
python (八)迭代器、生成器、列表推导式
查看>>
DISCUZ X2更换域名注意事项
查看>>
MySql 中锁的定义
查看>>
《Beginning C# Objcets》学习笔记
查看>>
Verilog代码风格
查看>>
【UVA1638】杆子的排列
查看>>
二叉树中的节点删除-----按照最底层最右边的节点收缩
查看>>
java常用类-----String类的源码分析、可变和不可变序列
查看>>
多重for循环如何提速
查看>>
句子相似度比较的归一化
查看>>
poj 3041
查看>>
批量删除64
查看>>
乱谈数学--我理解的函数极限运算
查看>>
关于博主&&联系博主
查看>>
ANF
查看>>
TZOJ 1321 Girls and Boys(匈牙利最大独立集)
查看>>
6月24日AppCan移动开发者大会礼品清单遭泄露
查看>>
java——HashMap的实现原理,自己实现简单的HashMap
查看>>
java servlet上传centos服务器
查看>>
前端读者 | 由setTimeout引发的JS引擎运行机制的研究
查看>>