bzoj1053 [HAOI2007]反素数ant
来源:互联网 发布:apache漏洞 编辑:程序博客网 时间:2024/04/27 09:54
Description
对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。
如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数。例如,整数1,2,4,6等都是反质数。
现在给定一个数N,你能求出不超过N的最大的反质数么?
Input
一个数N(1<=N<=2,000,000,000)。
Output
不超过N的最大的反质数。
Sample Input
1000
Sample Output
840
这是数学题……意思是求一个1到n以内的数,使得这个数有最多的约数。如果有多解,只找最小的那个
因为要严格满足对于任意1<=i<=n,有g(x) > g(i),所以如果有g(i)=g(j)且i<=j,那么i是符合题意的,但是j是不符合的。因为g(j)>g(i)不满足
至于一个数的约数个数,把它分解质因数,假设是p1^q1 * p2^q2 * p3^q3……*pi^qi,那么约数个数是(q1+1)*(q2+1)*(q3+1)……*(qi+1)。
预处理出前几个质数直接暴搜就好了
显然有一个推论很好证明:对于两个数,它们分解质因数之后是a^q1+b^q2和a^q2+b^q1,满足a<b,q1<q2。那么显然根据上面的公式,这两个数的约数个数都是(q1+1)(q2+1),但是第一个数小,所以我们应该取第一个数。所以我们可以加一个剪枝:前一个质数的指数一定大等于后一个质数的指数。这样就没什么问题了
我写的时候好像没有卡住使前一个质数的指数一定大等于后一个质数的指数,然后更新答案的时候加了个条件:当约数个数相同且数字更小的时候也更新答案
#include<cstdio>#include<cstring>#define LL long longLL n,m,len,mx,ans;const LL prime[14]={0,2,3,5,7,11,13,17,19,23,29,31,37};LL s[100];inline void dfs(int x,LL sum,LL mult)// 做到第x个质数,当前已有sum约数,和已经达到mult{if (x>12)return;if(sum>mx||sum==mx&&mult<ans){mx=sum;ans=mult;}s[x]=0;while (mult*prime[x]<=n&&s[x]<s[x-1]){s[x]++;mult*=prime[x];LL next=sum*(s[x]+1);dfs(x+1,next,mult);}}int main(){scanf("%lld",&n);s[0]=100000;dfs(1,1,1);printf("%lld",ans);}
0 0
- bzoj1053 [HAOI2007]反素数ant
- bzoj1053: [HAOI2007]反素数ant
- BZOJ1053: [HAOI2007]反素数ant
- [BZOJ1053][HAOI2007]反素数ant
- BZOJ1053: [HAOI2007]反素数ant
- 【bzoj1053】【HAOI2007】反素数ant
- bzoj1053[HAOI2007]反素数ant
- 【bzoj1053】 [HAOI2007]反素数ant
- bzoj1053: [HAOI2007]反素数ant
- bzoj1053 [HAOI2007] 反素数ant
- Bzoj1053 [HAOI2007]反素数ant
- bzoj1053: [HAOI2007]反素数ant
- 【bzoj1053】[HAOI2007]反素数ant DFS
- [dfs] BZOJ1053: [HAOI2007]反素数ant
- 【结论+暴搜】BZOJ1053 [HAOI2007]反素数ant
- 【bzoj1053】[HAOI2007]反素数ant(数论)
- BZOJ1053(HAOI2007)反素数ant--暴搜
- 【BZOJ1053】【HAOI2007】反素数ant 打表。/搜索
- c
- thinkphp 通过获取用户登录时的session_id来获取session里面的数据传到前台默认显示
- ★ HDU 1045 行列匹配的变形
- 2014/7/19 代理模式
- sanwen
- bzoj1053 [HAOI2007]反素数ant
- Linux内核调试方法
- 运行java程序报java/lang/NoClassDefFoundError: java/lang/Object
- Leetcode_Two Sum
- 字符4串my_atoi
- QtCreator 项目视图的便捷类QListWidget,QTableWidget,QTreeWidget
- CString与string,wchar与char,wstring与string的相关转换问题
- 黑马程序员_基础_GUI
- Best Cow Line