BZOJ 1225: [HNOI2001] 求正整数 高精度+搜索+质数
题意:给定n求,有n个因子的最小正整数。
题解:水题,zcr都会,我就不说什么了。
因数个数球求法应该知道,将m分解质因数,然后发现 a1^p1*a2^p2....an^pn这样一个式子,
(1+p1)*(1+p2)*...=n,然后用小的质数填坑。
- #include <bits/stdc++.h>
- using namespace std;
- int pri[] = {,,,,,,,,,,,,,,,,};
- int n, ans[], res[], tmp[];
- double lg[], mn=DBL_MAX;
- void input()
- {
- scanf("%d", &n);
- for(int i=; i<=; i++) lg[i] = log(pri[i]);
- }
- void dfs(double x, int y, int z){//现在的数是e^x,还剩下y个因子,选到第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+);
- }
- }
- }
- }
- void work()
- {
- dfs(, n, );
- }
- void output()
- {
- 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]);
- }
- printf("\n");
- }
- int main()
- {
- input();
- work();
- output();
- return ;
- }
BZOJ 1225: [HNOI2001] 求正整数 高精度+搜索+质数的更多相关文章
- BZOJ 1225: [HNOI2001] 求正整数( dfs + 高精度 )
15 < log250000 < 16, 所以不会选超过16个质数, 然后暴力去跑dfs, 高精度计算最后答案.. ------------------------------------ ...
- 【BZOJ】1225: [HNOI2001] 求正整数
http://www.lydsy.com/JudgeOnline/problem.php?id=1225 题意:给一个数n,求一个最小的有n个约数的正整数.(n<=50000) #include ...
- bzoj1225 [HNOI2001] 求正整数
1225: [HNOI2001] 求正整数 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 762 Solved: 313[Submit][Statu ...
- 高精度+搜索+质数 BZOJ1225 [HNOI2001] 求正整数
// 高精度+搜索+质数 BZOJ1225 [HNOI2001] 求正整数 // 思路: // http://blog.csdn.net/huzecong/article/details/847868 ...
- luogu P1128 [HNOI2001]求正整数 dp 高精度
LINK:求正整数 比较难的高精度. 容易想到贪心不过这个贪心的策略大多都能找到反例. 考虑dp. f[i][j]表示前i个质数此时n的值为j的最小的答案. 利用高精度dp不太现实.就算上FFT也会T ...
- [HNOI2001]求正整数
题目描述 对于任意输入的正整数n,请编程求出具有n个不同因子的最小正整数m. 例如:n=4,则m=6,因为6有4个不同整数因子1,2,3,6:而且是最小的有4个因子的整数. 输入输出格式 输入格式: ...
- [HNOI2001] 求正整数 - 背包dp,数论
对于任意输入的正整数n,请编程求出具有n个不同因子的最小正整数m. Solution (乍一看很简单却搞了好久?我真是太菜了) 根据因子个数计算公式 若 \(m = \prod p_i^{q_i}\) ...
- P1128 [HNOI2001]求正整数
传送门 rqy是我们的红太阳没有它我们就会死 可以考虑dp,设\(dp[i][j]\)表示只包含前\(j\)个质数的数中,因子个数为\(i\)的数的最小值是多少,那么有转移方程 \[f[i][j]=m ...
- 实验一:实现求正整数1-N之间所有质数的功能,并进行测试。
实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 命令行下的程序开 ...
随机推荐
- OSW
OSWatcher 工具 下载文档 :Metalink Doc ID 301137.1 Oswatcher 主要用于监控主机资源,如CPU,内存,网络以及私有网络等.其中私有网络需要单独配置. 需要说 ...
- solr之~模糊查询【转】
solr之~模糊查询 有的时候,我们一开始不可能准确地知道搜索的关键字在 Solr 中查询出的结果是什么,因此,Solr 还提供了几种类型的模糊查询.模糊匹配会在索引中对关键字进行非精确匹配.例如,有 ...
- AJPFX关于面向对象中的对象初始化整理,综合子父类、代码块等等
今天总结了一下子父类当中含有静态代码块.代码块.构造函数.成员变量.子类复写父类方法时子类的初始化过程,把思路理清一下 class Fu { //父类成员变量 private int num = 3; ...
- VUE 全选
<div id="vue_det"> <p>全选:</p> <input type="checkbox" id=&qu ...
- git忽略文件权限的检查
在linux上配置了一个samba服务器,方便在linux上通过ide修改代码,然后发现一个很烦人的问题,就是没有修改权限,在使用命令 chmod 777 filename后可以修改了,然而使用git ...
- [转]Git分支管理策略
如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control System). 眼下最流行的"版本管理系统",非Git莫属. 相比同类软件, ...
- vue2.0 动态切换组件
组件标签是Vue框架自定义的标签,它的用途就是可以动态绑定我们的组件,根据数据的不同更换不同的组件. <!DOCTYPE html> <html lang="en" ...
- react link引入外部css样式的坑
刚开始的代码是这样的,使用react router4.x写的demo路由跳转后,页面的没有渲染,是因为没有引入外部css文件(或者说引入外部文件路径错误) <!DOCTYPE html> ...
- CE工具里自带的学习工具--第三关
图解: 重复第5,6,7,8,9步,最终得到:
- Win7 与win10绘制桌面壁纸的区别
win7使用csrss.exe绘制壁纸. win10使用explorer.exe绘制壁纸.