题解:

数论+报搜

首先套一个计算因子个数的公式

枚举一下这个数

代码:

#include<bits/stdc++.h>
using namespace std;
int n,ans[],res[],tmp[];
int pri[]={,,,,,,,,,,,,,,,,};
double mn=DBL_MAX,lg[];
void dfs(double x,int y,int z)
{
if (x>=mn)return;
if (y==)
{
mn=x;
memset(res,,sizeof(res));
for(int i=;i<=z-;i++)res[i]=tmp[i];
return;
}
if (z>)return;
for (int i=;(i+)*(i+)<=y;i++)
if (y%(i+)==)
{
if (i!=)
{
tmp[z]=i;
dfs(x+lg[z]*i,y/(i+),z+);
}
if ((i+)*(i+)!=y)
{
tmp[z]=y/(i+)-;
dfs(x+lg[z]*(y/(i+)-),i+,z+);
}
}
}
int main()
{
scanf("%d",&n);
for (int i=;i<=;i++)lg[i]=log(pri[i]);
dfs(,n,);
ans[]=ans[]=;
for (int i=;i<=;i++)
for (;res[i]>;res[i]--)
{
for (int j=;j<=ans[];j++)ans[j]*=pri[i];
for (int j=;j<=ans[];j++)ans[j+]+=ans[j]/,ans[j]%=;
if (ans[ans[]+]!=) ans[]++;
while (ans[ans[]]/!=)
ans[ans[]+]+=ans[ans[]]/,ans[ans[]]%=,++ans[];
}
for (int i=ans[];i>=;i--)printf("%d",ans[i]);
return ;
}

bzoj1225的更多相关文章

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

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

  2. 【BZOJ1225】求正整数(数论)

    题意:对于任意输入的正整数n,请编程求出具有n个不同因子的最小正整数m. n<=50000 思路:记得以前好像看的是maigo的题解 n即为将m分解为质数幂次的乘积后的次数+1之积 经检验只需要 ...

  3. bzoj1225 [HNOI2001] 求正整数

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

随机推荐

  1. CF1028E Restore Array 构造

    正解:构造 解题报告: 传送门! 是的灵巧还在写构造,,,不知道484我做题太慢的缘故我感觉我做了好久的构造了然而一半的题目都没做完QAQ 要哭出来了QAQ 然后说下这题的解法,开始花了这——么的时间 ...

  2. iptables综述

    1 概述 如下图所示,iptables共有Filter,Nat,Mangle和RAW共四个table,每个table还有若干个chain,每个chain中还包含若干个rule 1.1 Filter t ...

  3. Google I/O 2014 - Keynote for Android

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/jingxia2008/article/details/34809467 Google I/O 201 ...

  4. Java线程池ThreadPoolExecuter:execute()原理

    一.线程池执行任务的流程 如果线程池工作线程数<corePoolSize,创建新线程执行task,并不断轮训t等待队列处理task. 如果线程池工作线程数>=corePoolSize并且等 ...

  5. PAT 1143 Lowest Common Ancestor[难][BST性质]

    1143 Lowest Common Ancestor(30 分) The lowest common ancestor (LCA) of two nodes U and V in a tree is ...

  6. 入坑-DM导论-第一章绪论笔记

    //本学习笔记只是记录,并未有深入思考. 1.什么是数据挖掘? 数据挖掘是数据库中发现必不可少的一部分. 数据预处理主要包括(可能是最耗时的步骤): 1.融合来自多个数据源的数据 2.清洗数据以消除噪 ...

  7. VS2010/MFC编程入门之十(对话框:设置对话框控件的Tab顺序)

    前面几节鸡啄米为大家演示了加法计算器程序完整的编写过程,本节主要讲对话框上控件的Tab顺序如何调整. 上一讲为“计算”按钮添加了消息处理函数后,加法计算器已经能够进行浮点数的加法运算.但是还有个遗留的 ...

  8. 2018年浙江中医药大学程序设计竞赛 Solution

    Problem A. Jhadgre的C语言程序 签. #include <bits/stdc++.h> using namespace std; int main() { puts(&q ...

  9. Kernel space是啥?

    今天因为查一个Java zero copy的问题,遇到了kernel space.之前是耳闻过内核空间的,但是看到kernel space不知道是啥.知道的太少,除了学习,我也做不了啥.因为自己认知有 ...

  10. OpenCV图像的轮廓的匹配

    http://blog.sina.com.cn/s/blog_67a7426a0101cxl0.html 一个跟轮廓相关的最常用到的功能是匹配两个轮廓.如果有两个轮廓,如何比较它们;或者如何比较一个轮 ...