传送门

rqy是我们的红太阳没有它我们就会死

可以考虑dp,设\(dp[i][j]\)表示只包含前\(j\)个质数的数中,因子个数为\(i\)的数的最小值是多少,那么有转移方程

\[f[i][j]=min(f[i/k][j-1]\times p_j^{k-1})
\]

这玩意儿肯定是不能高精dp的……于是看到乘法就想到对数……根据对数的基本定理,有

\[log\ n=\sum c_i\ log\ p_i
\]

那么我们可以改一下转移

\[f[i][j]=min(f[i/k][j-1]+ (k-1)log\ p_j)
\]

然后算出最后的答案之后倒着找一下转移的方向高精乘回去就是了

因为没有写eps于是调了一个小时都找不出错我再也不偷懒不写eps了QAQ

//minamoto
#include<bits/stdc++.h>
#define fp(i,a,b) for(register int i=a,I=b+1;i<I;++i)
#define fd(i,a,b) for(register int i=a,I=b-1;i>I;--i)
using namespace std;
const double min(const double &x,const double &y){return x<y?x:y;}
const int p[]={
2, 3, 5, 7, 11,
13, 17, 19, 23, 29,
31, 37, 41, 43, 47,
53, 59, 61, 67, 71
};double Log[25],f[505][25];int d[505],n,tot,len,A[100005],pos;
void mul(int x){
int add=0;
fp(i,1,len)A[i]=A[i]*x+add,add=A[i]/10,A[i]%=10;
while(add)A[++len]=add%10,add/=10;
}
int main(){
// freopen("testdata.in","r",stdin);
scanf("%d",&n);fp(i,1,n)if(n%i==0)d[++tot]=i;
fp(i,0,19)f[0][i]=0;fp(i,0,19)Log[i]=log(p[i]);
fp(i,2,tot){
fp(k,0,19)f[i][k]=1e9;
fp(j,1,i-1)if(d[i]%d[j]==0){
int t=d[i]/d[j];
fp(k,1,19)f[i][k]=min(f[i][k],f[j][k-1]+Log[k-1]*(t-1));
}
}A[1]=len=1;
fp(i,0,19)if(f[tot][i]<f[tot][pos])pos=i;
for(register int i=tot,nxt;i>1;i=nxt,--pos){
for(nxt=1;d[i]%d[nxt]||f[i][pos]<f[nxt][pos-1]+Log[pos-1]*(d[i]/d[nxt]-1)-1e-5;++nxt);
// for(nxt=1;d[i]%d[nxt]||f[i][pos]<f[nxt][pos-1]+Log[pos-1]*(d[i]/d[nxt]-1)-1e-5;++nxt);
fp(k,1,d[i]/d[nxt]-1)mul(p[pos-1]);
}
while(len--)printf("%d",A[len+1]);return 0;
}

P1128 [HNOI2001]求正整数的更多相关文章

  1. luogu P1128 [HNOI2001]求正整数 dp 高精度

    LINK:求正整数 比较难的高精度. 容易想到贪心不过这个贪心的策略大多都能找到反例. 考虑dp. f[i][j]表示前i个质数此时n的值为j的最小的答案. 利用高精度dp不太现实.就算上FFT也会T ...

  2. 高精度+搜索+质数 BZOJ1225 [HNOI2001] 求正整数

    // 高精度+搜索+质数 BZOJ1225 [HNOI2001] 求正整数 // 思路: // http://blog.csdn.net/huzecong/article/details/847868 ...

  3. BZOJ 1225: [HNOI2001] 求正整数( dfs + 高精度 )

    15 < log250000 < 16, 所以不会选超过16个质数, 然后暴力去跑dfs, 高精度计算最后答案.. ------------------------------------ ...

  4. bzoj1225 [HNOI2001] 求正整数

    1225: [HNOI2001] 求正整数 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 762  Solved: 313[Submit][Statu ...

  5. 【BZOJ】1225: [HNOI2001] 求正整数

    http://www.lydsy.com/JudgeOnline/problem.php?id=1225 题意:给一个数n,求一个最小的有n个约数的正整数.(n<=50000) #include ...

  6. [HNOI2001]求正整数

    题目描述 对于任意输入的正整数n,请编程求出具有n个不同因子的最小正整数m. 例如:n=4,则m=6,因为6有4个不同整数因子1,2,3,6:而且是最小的有4个因子的整数. 输入输出格式 输入格式: ...

  7. BZOJ 1225: [HNOI2001] 求正整数 高精度+搜索+质数

    题意:给定n求,有n个因子的最小正整数. 题解:水题,zcr都会,我就不说什么了. 因数个数球求法应该知道,将m分解质因数,然后发现 a1^p1*a2^p2....an^pn这样一个式子, (1+p1 ...

  8. [HNOI2001] 求正整数 - 背包dp,数论

    对于任意输入的正整数n,请编程求出具有n个不同因子的最小正整数m. Solution (乍一看很简单却搞了好久?我真是太菜了) 根据因子个数计算公式 若 \(m = \prod p_i^{q_i}\) ...

  9. 求正整数n所有可能的和式的组合(如;4=1+1+1+1、1+1+2、1+3、2+1+1、2+2

    作者:张小二 nyoj90 ,可以使用递归的方式直接计算个数,也可以通过把满足的个数求出来计数,因为在juLy博客上看到整数划分,所以重写了这个代码,就是列出所m的可能性,提交后正确.acmer的入门 ...

随机推荐

  1. NOIP2012提高组D1T3 开车旅行

    n<=100000个山,每个山有高度,从一个山到另一个山代价为高度差,有A和B两人一起开车,A每次选前进方向的次近山,B选最近,保证山高度不同且如果代价相同的山低的代价算小,每次旅行先A走,然后 ...

  2. Thinkphp5.0 的视图view的循环标签

    Thinkphp5.0 的视图view的循环标签 volist标签: <!-- 使用volist --> <!-- name是传递过来的要循环变量名 --> <!-- k ...

  3. 排列组合(permutation)系列解题报告

    本文解说4道关于permutation的题目: 1. Permutation:输出permutation--基础递归 2. Permutation Sequence: 输出字典序排列的第k个permu ...

  4. Mesos, Marathon, Docker 平台部署记录

    Mesos, Marathon, Docker 平台部署记录 所有组件部署基于Ubuntu 14.04 x64 主机 IP 角色 master 192.168.1.3 Mesos Master, Ma ...

  5. Python常用数据处理函数

    1.基本统计特征函数 方法名 函数功能 所属库 使用格式 sum() 计算数据样本综合(按列计算) Pandas D.sum() mean() 计算数据样本算数平均数 Pandas D.mean() ...

  6. WWDC笔记:2013 Session 201 Building User Interfaces for iOS 7

    Text Dynamic Type Specifies fonts semantically Supports user text sizing Optimized for legibility Su ...

  7. iOS开发——高级篇——iOS 项目的目录结构

    最近闲来无事去面试一下iOS开发,让我感到吃惊的,面试官竟然问怎么分目录结构,还具体问每个子目录的文件名. 目录结构确实非常重要,面试官这么问,无疑是想窥探开发经验.清晰的目录结构,可让人一眼明白相应 ...

  8. Go 语言的下一个大版本:Go 2.0 被安排上了(全面兼容1.X,改进错误处理和泛型这两大主题)

    今年 8 月 Go 开发团队公布了 Go 2.0 的设计草案,包括错误处理和泛型这两大主题.现在备受瞩目的 Go 2.0 又有了新动向 —— 昨日 Go 开发团队在其官方博客表示,Go 2 已经被安排 ...

  9. ios28--UIScrollView

    // // ViewController.m // UIScrollVIew #import "ViewController.h" @interface ViewControlle ...

  10. spring cloud-spring boot 文档信息

    官网: spring boot springcloud 学习资源 使用IDEA创建SpringBoot项目 Spring Boot教程https://blog.csdn.net/forezp/arti ...