线型素数筛+质因素分解+组合数。

AC后发现这样做效率有点低。。766ms。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std; typedef long long LL;
int tol;
LL factor[];
const int N = ;
LL prime[N] = {},num_prime = ;
int isNotPrime[N] = {, }; void findfac(long long n)
{
for(int i=; i<num_prime; i++)
{
if(n%prime[i]!=) continue;
while()
{
if(n==||n%prime[i]!=) break;
factor[tol++]=prime[i];
n=n/prime[i];
}
if(n==) break;
}
} int num[],tot;
long long c[][]; void init()
{
c[][]=;
for(int i=; i<=; i++) c[i][]=;
for(int i=; i<=; i++)
{
for(int j=; j<=; j++)
{
c[i][j]=c[i-][j-]+c[i-][j];
}
} for(long i = ; i < N ; i ++)
{
if(! isNotPrime[i])
prime[num_prime ++]=i;
for(long j = ; j < num_prime && i * prime[j] < N ; j ++)
{
isNotPrime[i * prime[j]] = ;
if( !(i % prime[j] ) )
break;
}
}
} int main()
{
init();
long long n; while(~scanf("%lld",&n))
{
if(n==) {
printf("%d %lld\n",,);
continue;
}
tol=;
findfac(n);
sort(factor,factor+tol); tot=,num[tot]=;
for(int i=;i<tol;i++)
{
if(factor[i]==factor[i-]) num[tot]++;
else
{
tot++;
num[tot]=;
}
}
tot++;
int sum=tol;
int ans1=tol;
long long ans2=; for(int i=;i<tot;i++)
{
ans2=ans2*c[sum][num[i]];
sum=sum-num[i];
}
printf("%d %lld\n",ans1,ans2);
} return ;
}

POJ 3421 X-factor Chains的更多相关文章

  1. poj 3421 X-factor Chains——质因数分解

    题目:http://poj.org/problem?id=3421 记忆化搜索竟然水过去了.仔细一想时间可能有点不对,但还是水过去了. #include<iostream> #includ ...

  2. Mathematics:X-factor Chains(POJ 3421)

    X链条 题目大意,从1到N,1 = X0, X1, X2, …, Xm = X中间可以分成很多数,另Xi < Xi+1 Xi 可以整除Xi+1 ,求最大长度m和m长度的链有多少条 思路: 很简单 ...

  3. POJ 3421 X-factor Chains (因式分解+排列组合)

    题意:一条整数链,要求相邻两数前一个整除后一个.给出链尾的数,求链的最大长度以及满足最大长度的不同链的数量. 类型:因式分解+排列组合 算法:因式分解的素因子个数即为链长,链中后一个数等于前一个数乘以 ...

  4. POJ 3421 X-factor Chains | 数论

    题意: 给一个x,求最长的排列满足开头是1,结尾是x,前一个数是后一个数的因子 输出长度和这样序列的个数 题解: 把x分解质因数,质因数个数就是答案,接下来考虑怎么求个数 显然这是一个可重集合全排列问 ...

  5. POJ 3421 X-factor Chains(构造)

    这条链依次乘一个因子.因为n<2^20,sqrt(n)分解因子,相同的因子相对顺序取一个. 组合公式计算一下就好. #include<cstdio> #include<iost ...

  6. POJ 3421分解质因数

    X-factor Chains Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7375   Accepted: 2340 D ...

  7. POJ 3421

    X-factor Chains Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5111   Accepted: 1622 D ...

  8. poj 3048 Max Factor(素数筛)

    这题就是先写个素数筛,存到prime里,之后遍历就好,取余,看是否等于0,如果等于0就更新,感觉自己说的不明白,引用下别人的话吧: 素数打表,找出20000之前的所有素数,存入prime数组,对于每个 ...

  9. ProgrammingContestChallengeBook

    POJ 1852 Ants POJ 2386 Lake Counting POJ 1979 Red and Black AOJ 0118 Property Distribution AOJ 0333 ...

随机推荐

  1. iOS 判断奇偶数

    if (_bigUrlArray.count%2==0) {//如果是偶数 a = i*(_bigUrlArray.count/count);//每个线程图片初始数 b = (i+1)*(_bigUr ...

  2. 字符串编码问题(Ascii、Unicode、UCS-2、GBK、UTF-8)

    1.字符编码的发展 第一阶段:ASCII阶段,(American Standard Code for Information Interchange, "美国信息交换标准码),计算机当时只支 ...

  3. 【Android 应用开发】Android 开发 之 JNI入门 - NDK从入门到精通

    NDK项目源码地址 : -- 第一个JNI示例程序下载 : GitHub - https://github.com/han1202012/NDKHelloworld.git -- Java传递参数给C ...

  4. HBase性能优化方法总结(一):表的设计

    本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客. 下面是本文总结的第一部分内容:表的设计相关的优化方法 ...

  5. Roboguice学习之视图注入

    Robuguide的使用 准备工作: 首先在项目中必须实现GreetingModule和RoboguiceDemoApplication GreetingModule.java import com. ...

  6. HDU 5900

    QSC and Master Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  7. hdu_5648_DZY Loves Math

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5648 题意:给你n,m 让你求出 for(1-n)for(1-m)gcd(i&j,i|j)的s ...

  8. Python之路【第二篇】:Python基础(二)

    windows的换行符:\n\r linux的换行符:\n 文件的数据处理: r 以只读模式打开文件(默认模式)w 以只写模式打开文件a 以追加模式打开文件 r+b 以读写模式打开文件(以读/写方式打 ...

  9. 深入理解React、Redux

    深入理解React.ReduReact+Redux非常精炼,良好运用将发挥出极强劲的生产力.但最大的挑战来自于函数式编程(FP)范式.在工程化过程中,架构(顶层)设计将是一个巨大的挑战.要不然做出来的 ...

  10. Nginx将通过IP访问重定向

    server { listen 80 default_server; server_name localhost; location / { rewrite ^ http://www.xxx.com/ ...