点击打开链接

1225: [HNOI2001] 求正整数

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 835  Solved: 349
[Submit][Status][Discuss]

Description

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

Input

n(1≤n≤50000)

Output

m

Sample Input

4

Sample Output

6

1.数据范围只有50000,计算可得约数的个数最多16个,先打出一张素数表
以后的素数对答案没有贡献

2.dfs(x,y,z);
x表示搜索到的正整数,y表示x的因子个数,z表示已经搜索到了第z个质数

3.这样会超时,考虑剪枝
1.枚举当前质数的指数i时,y%(i+1)==0,那么就是求 y的因子数,
时间复杂度为sqrt(y);
2.当前质数的指数不可以为0,因为是从小到大搜索,还是比较有用
4.x是会爆long long的(比赛时用double卡的精度)如果搜索时加高精度就太麻烦了,
考虑用对数。log(n)=Σa[i]*log(pri[i]) 
5.在<float.h>中定义了浮点类型的范围:
#define DBL_MAX         1.7976931348623158e+308 
// max value 
#define DBL_MIN         2.2250738585072014e-308
//min positive value

#include<iostream>
#include<cstring>
#include<cfloat>
#include<cstdio>
#include<cmath>
using namespace std;
int n,ans[100005],res[21],tmp[21],pri[]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53};
double mn=DBL_MAX,lg[21];
void print()
{ans[0]=ans[1]=1;for(int i=1;i<=16;i++){for(;res[i]>0;res[i]--){for(int j=1;j<=ans[0];j++)ans[j]*=pri[i];for(int j=1;j<=ans[0];j++)ans[j+1]+=ans[j]/10,ans[j]%=10;if(ans[ans[0]+1]!=0)ans[0]++;while(ans[ans[0]]/10!=0)ans[ans[0]+1]+=ans[ans[0]]/10,ans[ans[0]]%=10,++ans[0];}}for(int i=ans[0];i>=1;i--)printf("%d",ans[i]);printf("\n");
}
void dfs(double x,int y,int z)//现在的数是e^x,还剩y个因子,选到第z个质数
{if(x>=mn)return ;if(y==1){mn=x;memset(res,0,sizeof(res));for(int i=1;i<=z-1;i++)res[i]=tmp[i];return ;}if(z>16)return ;for(int i=0;(i+1)*(i+1)<=y;i++)//找y的因子 if(y%(i+1)==0){if(i!=0){tmp[z]=i;dfs(x+lg[z]*i,y/(i+1),z+1);}if((i+1)*(i+1)!=y){tmp[z]=y/(i+1)-1;dfs(x+lg[z]*(y/(i+1)-1),i+1,z+1);}}
}
int main()
{scanf("%d",&n);for(int i=1;i<=16;i++)lg[i]=log(pri[i]);dfs(0,n,1);print();return 0;
}

bzoj 1225 暴搜动态规划相关推荐

  1. PTA 家庭房产 (图论,暴搜)

    PTA 家庭房产 (图论,暴搜) 题目详情: 给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数.人均房产面积及房产套数. 输入格式: 输入第一行给出一个正整数N(≤1000),随后N ...

  2. 紫书 习题7-14 UVa 307(暴搜+剪枝)

    这道题一开始我想的是在排序之后只在头和尾往中间靠近来找木块, 然后就WA, 事实证明这种方法是错误的. 然后参考了别人的博客.发现别人是直接暴搜, 但是加了很多剪枝, 所以不会超时. 我也想过这个做法 ...

  3. 子矩阵(暴搜(全排列)+DP)

    子矩阵(暴搜(全排列)+DP) 一.题目 子矩阵 时间限制: 1 Sec  内存限制: 128 MB 提交: 1  解决: 1 [提交][状态][讨论版] 题目描述 给出如下定义: 1. 子矩阵:从一 ...

  4. hdu4982 暴搜+剪枝(k个数和是n,k-1个数的和是平方数)

    题意:       给你两个数n,k问你是否怎在这样一个序列:      (1)这个序列有k个正整数,且不重复.      (2)这k个数的和是n.      (3)其中有k-1个数的和是一个平方数. ...

  5. hdu4848 DFS 暴搜+ 强剪枝

    题意:       给你一个图,然后问你从1出发遍历所有的点的距离和是多少,这里的距离和是每一个点到1的距离的总和,不是选择一条遍历所有点的路径的总长度,时间限制是 8000ms. 思路:       ...

  6. 算法提高课-图论-单源最短路的综合应用-AcWing 1135. 新年好:dijkstra和dfs暴搜结合

    题目分析 来源:acwing 分析: 先预处理出从1,a,b,c,d,e出发到其他所有点的单源最短路.存在二维数组dist[6][N]中 dfs暴搜所有拜访顺序,共有5!种,对于每一种拜访顺序,可以通 ...

  7. PAT甲级1119 Pre- and Post-order Traversals (30分):[C++题解]暴搜dfs、前序遍历和后序遍历求中序遍历

    文章目录 题目分析 题目链接 题目分析 分析 给了前序遍历和后序遍历,能够确定根结点,但是左子树和右子树的长度是不确定的.这里采用的解决方案是枚举左子树的结点个数,其实右子树的结点个数也确定了.对于每 ...

  8. Leetcode5635. 构建字典序最大的可行序列[C++题解]:dfs暴搜

    文章目录 题目 题目链接 题目 题目重述:给定一个数n,求一个长度为2n-1的序列:1只出现一次,2~n之间每个数出现2次,并且 对于2 ~n之间的每个数i,两个i之间相差为i,比如n=3,[3,1, ...

  9. HDU - 6185 Covering(暴搜+递推+矩阵快速幂/杜教BM)

    题目链接:点击查看 题目大意:规定宽度为4,给定长度为n,求用1*2和2*1的瓷砖,将其完全铺满能有多少种方法. 分析:自从学会了矩阵快速幂之后,看到1e18的数据量都会下意识的往递推上面想,但是以前 ...

最新文章

  1. java集合类根接口:Collection和Map
  2. 运筹学(最优化理论)学习笔记 | 共轭梯度法
  3. Python第二周 str的方法
  4. opengl环境配置
  5. 微信机、网络和java的相关知识点
  6. 每日一笑 | 一个男人逐渐变心的过程
  7. MySQL创建用户报错 -- ERROR 1396 (HY000): Operation CREATE USER failed for ‘user_name‘@‘localhost‘
  8. 固态函数不正确_一文解读quot;固态电容quot;的利与弊
  9. linux如何脚本监控tps,通过shell脚本监控日志切换频率
  10. 让你的产品更懂世界:如何提升场景文本识别中的语言模型
  11. 【算法】斐波那契(黄金分割法) 查找算法
  12. parallels desktop big sur 网络_初中生数学网络学习哪个好
  13. linux常用压缩/解压命令
  14. 图像处理基础(二)_OpenCV命名规则
  15. 曼昆微观经济学之征税的市场本质—冰激凌篇
  16. SPSS——描述性统计分析——探索性分析
  17. json数组转json对象(利用map()函数)
  18. OSG 集群渲染 cluster render 支持 Cave 和 powerwall 模式
  19. RAM的 Parity 与 ECC
  20. kali渗透姿式小汇总

热门文章

  1. Java枚举enum以及应用:枚举实现单例模式
  2. Python2.x爬虫入门之URLError异常处理
  3. mongoDB研究笔记:分片集群的工作机制
  4. Windows Server 2012 R2上Compact/Shrink vhdx
  5. 机器学习相关——SVD分解
  6. android微信小程序自动填表_微信小程序自动回复用户消息
  7. c 结构体在声明时赋值_Java基础知识 初识Java 循环结构进阶 数组 数据类型 各种运算符...
  8. qa 芯片测试_芯片测试术语介绍CP、FT、WAT
  9. 我对“POST和GET的区别”的理解
  10. linux内核全局变量重定位,关于可重定位文件中全局变量的一个重定位疑惑,借各位牛刀一用^...