poj 3421 X-factor Chains——质因数分解
题目:http://poj.org/problem?id=3421
记忆化搜索竟然水过去了。仔细一想时间可能有点不对,但还是水过去了。
#include<iostream>
#include<cstdio>
#include<cstring>
#define ll long long
using namespace std;
const int N=(<<)+;
int n;
ll a[N],f[N];
void find(int x)
{
if(a[x])return;
a[x]=;
for(ll i=;i*i<=x;i++)
if(x%i==)
{
find(i);find(x/i);
ll tmp=a[x];
a[x]=max(a[x],max(a[i],a[x/i])+);
if(a[x]!=tmp)f[x]=;
if(a[i]==a[x]-)f[x]+=f[i];
if(i!=x/i&&a[x/i]==a[x]-)f[x]+=f[x/i];//i!=x/i
}
if(!f[x])f[x]=;
}
int main()
{
while(scanf("%d",&n)==)
{
find(n);
printf("%lld %lld\n",a[n],f[n]);
}
return ;
}
然后发现是质因数分解。
可以理解成需要乘一个数才能进一步,为了走最长的,就是乘最小的,也就是一个质因数。
方案数就是一堆组合数相乘啦。不敢预处理,现求阶乘也没爆。
没错,仔细一想最多只有20个质因数,因为是log的。
#include<iostream>
#include<cstdio>
#include<cstring>
#define ll long long
const int N=(<<)+,M=;
int n,p[M],k[M],tot,sum;
ll ans;
ll C(int n,int m)
{
ll ret=;
for(int i=n-m+;i<=n;i++)ret*=i;
for(int i=;i<=m;i++)ret/=i;
return ret;
}
int main()
{
while(scanf("%d",&n)==)
{
ans=;sum=;tot=;
for(int i=;i*i<=n;i++)
if(n%i==)
{
p[++tot]=i;k[tot]=;
while(n%i==)n/=i,k[tot]++;
sum+=k[tot];
}
if(n>)p[++tot]=n,k[tot]=,sum++;
printf("%d ",sum);
for(int i=;i<=tot;i++)
{
ans*=C(sum,k[i]);sum-=k[i];
}
printf("%lld\n",ans);
}
return ;
}
poj 3421 X-factor Chains——质因数分解的更多相关文章
- POj3421 X-factor Chains(质因数分解+排列组合)
POj3421X-factor Chains 一开始没读懂题意,不太明白 Xi | Xi+1 where a | b means a perfectly divides into b的意思,后来才发现 ...
- POJ 1845 Sumdiv#质因数分解+二分
题目链接:http://poj.org/problem?id=1845 关于质因数分解,模板见:http://www.cnblogs.com/atmacmer/p/5285810.html 二分法思想 ...
- POJ 2429 long long 质因数分解
GCD & LCM Inverse Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 16206 Accepted: ...
- Poj 1401 Factorial(计算N!尾数0的个数——质因数分解)
一.Description The most important part of a GSM network is so called Base Transceiver Station (BTS). ...
- algorithm@ 大素数判定和大整数质因数分解
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<time.h> #in ...
- 数学概念——J - 数论,质因数分解
J - 数论,质因数分解 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit ...
- hdu1405 第六周J题(质因数分解)
J - 数论,质因数分解 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Desc ...
- HDU 1045(质因数分解)
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description Tomor ...
- [学习笔记] Miller-Rabin质数测试 & Pollard-Rho质因数分解
目录 Miller-Rabin质数测试 & Pollard-Rho质因数分解 Miller-Rabin质数测试 一些依赖的定理 实现以及正确率 Pollard-Rho质因数分解 生日悖论与生日 ...
随机推荐
- 基于linux的ekho(余音)安装与开发
Ekho(余音)是一个把文字转换成声音的软件.它目前支持粤语.普通话(国语).诏安客语和韩语(试验中),英文则通过Festival间接实现.它比eSpeak的设计更简易,但文件较大.由于使用了真人发声 ...
- rem布局原理
昨天去面试,面试官竟然说他们用媒体查询针对不同的屏幕宽度做了9个不同的rem布局,呵呵... eg: html{font-size:20px;} div{width:16rem;height:100p ...
- 数据结构与算法分析:C语言描述(原书第2版 简体中文版!!!) PDF+源代码+习题答案
转自:http://www.linuxidc.com/Linux/2014-04/99735.htm 数据结构与算法分析:C语言描述(原书第2版中文版!!!) PDF+源代码+习题答案 数据结构与算法 ...
- 斯坦福机器学习视频笔记 Week7 支持向量机 Support Vector Machines
SVM被许多人认为是最强大的“黑箱”学习算法,并通过提出一个巧妙选择的优化目标,今天最广泛使用的学习算法之一. Optimization Objective 根据Logistic Regression ...
- 关于Kinect音频开发的探究
1.笔者在<Kinect体感程序设计入门>(王森著)的这本书中看到可以使用powershell和COM对象无缝整合,轻松的使用windows系统自带的语音合成功能. 步骤:•打开进入pow ...
- HTTP与HTTPS有什么区别?
HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用 ...
- 添加vue调试工具vue-devtolls
1.在使用脚手架vue-cli.js下载好node-modules 2.在node-modules目录下找的vue-devtools文件(如果没有可以用npm install vue-devtools ...
- bzoj 2656 [Zjoi2012]数列(sequence) 递推+高精度
2656: [Zjoi2012]数列(sequence) Time Limit: 2 Sec Memory Limit: 128 MB[Submit][Status][Discuss] Descri ...
- tp5定时器
# 定时器 * * * * * cd /home/wwwroot/default/dexin/dragon && /usr/bin/php think order --option 1 ...
- JavaScript文件下载 兼容所有浏览器 不可跨域
前端文件下载 兼容所有浏览器 download.js文件下载,几乎支持所有类型下载,详细内容参考官网 http://danml.com/download.html 引入文件 <script sr ...