传送门
思路:
爆搜好题,hack好题(?)
程序最后附带三组数据……
暴力搜索有哪些质因子

比较重要的一个是n最多只有一个大于n√\sqrt n的质因子
也就是我们只用找所有小于等于n√\sqrt n的质因子就可以了
每次判断一下,如果当前的x大于n√\sqrt n且是质数,那么直接乘到答案中去就可以了
加上各种的剪枝优化……
话虽这么说但细节还是蛮多的
话说我hack了好几个人……
代码:

#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<iostream>
#define LL long long
using namespace std;
int goal;
LL ans=1LL<<60;
int prime[100005];
bool vis[100005];
void init()
{for (int i=2;i<=47000;++i){if (!vis[i]) prime[++prime[0]]=i;for (int j=1;j<=prime[0];++j){if (prime[j]*i>47000) break;vis[prime[j]*i]=1;if (i%prime[j]==0) break;}}
}
bool cal(LL x)
{for (int i=1;i<=prime[0]&&(LL)prime[i]*prime[i]<=x;++i)if (x%prime[i]==0) return 0;return 1;
}
void dfs(LL n,LL x,int p)
{if (n>=ans||(n>=(1LL<<31))||p>prime[0]) return;if (x==1){ans=min(n,ans);return;}if (x>sqrt(goal)&&cal(x+1)){ans=min(n*(x+1),ans);return;}if (n*prime[p]>=ans) return;LL t=1,ph=1;for (int i=p;i<=prime[0];++i){if (x<prime[i]-1) break;if (x%(prime[i]-1)==0){ph=prime[i]-1;t=prime[i];dfs(n*t,x/ph,i+1);ph*=prime[i];t*=prime[i];while (x%ph==0)dfs(n*t,x/ph,i+1),t*=prime[i],ph*=prime[i];}}
}
main()
{scanf("%d",&goal);init();dfs(1,goal,1);printf("%d\n",ans>=(1LL<<31)?-1:ans);
}
/*
1021870080
10219439532147483646
21474836471610547200
2139008425
*/

【BZOJ3643】phi的反函数,暴搜相关推荐

  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的数据量都会下意识的往递推上面想,但是以前 ...

  10. [ NOIP提高组 2016]愤怒的小鸟(暴搜 + 状压DP)// [SNOI2017]一个简单的询问(莫队)

    一次性写两道题 T1:一个简单的询问 题目 题解 代码实现 T2:愤怒的小鸟 题目 暴搜题解 暴搜代码实现 状压DP题解 状压DP代码实现 T1:一个简单的询问 题目 给你一个长度为 N 的序列 ai ...

最新文章

  1. python3 操作redis
  2. tomcat的jsp页面超过65535,导致500报错
  3. cnpm install -g @vue/cli
  4. [原创]修改oracle 数据库默认时间格式
  5. 网友提问:SAP FUNCTION使用cl_http_client POST REQUEST的问题
  6. 大众汽车和鸿蒙,鸿蒙系统下个月即将与大众见面,首发平台并非手机
  7. .NET 将 .config 文件嵌入到程序集
  8. 价格优化与定价管理软件行业调研报告 - 市场现状分析与发展前景预测
  9. java 获取客户端的域用户名_使用java有没有办法提取局域网中的客户端的用户名,客户端是以域用户身份进去的...
  10. Python字符串count()
  11. Pwn2Own黑客大赛战况:iPhone 20秒被黑
  12. JAVA对MYSQL进行连接、插入、修改、删除操作
  13. R语言data manipulation学习笔记之创建变量、重命名、数据融合
  14. Python中的get和set方法
  15. html5介绍 之亮点特性
  16. iOS 处理图片的一些小 Tip
  17. VMware ESXi 客户端连接控制台时,提示“VMRC 控制台连接已断开...正在尝试重新连接”的解决方法
  18. PSPnet网络结构搭建
  19. 纲要-Java网络爬虫系统性学习与实战(1)
  20. usb声卡驱动_哑巴电脑拯救者——它可能是你见过使用最简单的外接声卡!

热门文章

  1. 全民上云时代,如何降低成本?
  2. oracle数据库表excel文件位置,Excel数据导入到oracle数据库表方法
  3. levelshifter工作原理_从滑块问题看Level Shifter中Latch的状态转换
  4. MySQL统计两部分查询结果记录数量比值
  5. Atom Latex Settings
  6. Python文件读取(1.1)
  7. Python统计TXT词云
  8. Python05 梯形公式 Simpson公式 Cotes公式 Romber公式(附代码)
  9. html雪碧图效果,html和css中雪碧图的使用
  10. w ndows2000,华塑CAE软件简介