POJ 3421
来源:互联网 发布:阿里云数据库连接工具 编辑:程序博客网 时间:2024/05/19 00:39
因为题目里要求Xi | Xi+1,而Xm又限定为X,所以我们可以想到Xm-1是X除以其某个约数得到的,Xm-1也是一样。由此我们可以知道“X-factor Chains”是通过不断乘以X的约数得到的,为了长度最大,所以约数必须是素数。通过记录有哪些素因数,以及素因子的数量,我们就可以得到链的长度。
而长度最大的链的数量则是这些数的排列数,公式为素因子个数之和的阶乘/每个素因子个数的阶乘。
代码(G++):
#include <iostream>#include <map>using namespace std;map<int, int> res;map<int, int>::iterator mi;long long fact(int n){ long long v; if(n == 0 || n == 1) return 1; else{ v = n; for(int i=2; i<n; i++) { v *= i; } return v; }}int main(){ int x, sum; long long ans; while(cin>>x) { sum = 0; res.clear(); for(int i=2; i*i<=x; i++) { while(x%i == 0) { x /= i; ++res[i]; ++sum; } } if(x != 1) { ++res[x]; ++sum; } ans = fact(sum); for(mi=res.begin(); mi!=res.end(); mi++) { ans /= fact(mi->second); } cout<<sum<<' '<<ans<<endl; } return 0;}
题目:
X-factor Chains
Time Limit: 1000MS Memory Limit: 65536K
DescriptionGiven a positive integer X, an X-factor chain of length m is a sequence of integers,1 = X0, X1, X2, …, Xm = XsatisfyingXi < 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.InputThe input consists of several test cases. Each contains a positive integer X (X ≤ 220).OutputFor each test case, output the maximum length and the number of such X-factors chains.Sample Input23410100Sample Output1 11 12 12 24 6
0 0
- POJ 3421
- poj 3421
- poj 3421
- POJ 3421
- 【POJ】3421
- POJ
- poj
- POJ
- POJ
- poj
- poj
- POJ
- POJ
- poj
- POJ
- POJ
- POJ
- POJ
- 【USACO题库】4.1.1 Beef McNuggets麦香牛块
- Java并发之线程间协作Object的wait()、notify()、notifyAll()
- [数据挖掘工具] R语言书籍的学习路线图(转自格物堂)
- 自定义组件使用总结
- [算法]移位与旋转
- POJ 3421
- Swift之分支
- <<快学Scala>> 第十九章 练习8 答案
- win 7下卸载Apache
- 与网络公司合作建站流程和注意事项
- 机器学习基石第五讲:training versus testing
- iOS开发之GCD -- dispatch_group
- CNNs学习笔记(5): CNNs详细理解 Part1
- (4.1.5.2)Android 粘性广播StickyBroadcast的使用