BZOJ 1053 反素数【DFS剪枝】
来源:互联网 发布:unity3d 联网 编辑:程序博客网 时间:2024/04/29 22:54
Description
对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。如果某个正整数x满足:
题解
由于范围很大,所以不能暴力枚举,我们要思考如何剪枝。
考虑
若
代码:
#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define LL long long#define maxn 1000using namespace std;const int prime[10]={2,3,5,7,11,13,17,19,23,29};LL n,temp,ans;bool vis[maxn];LL power(int x,int y){ if(!y)return 1; if(y==1)return x; LL c=power(x,y>>1); if(y&1)return c*c*x; else return c*c;}void dfs(LL x,int p,int lst,LL num){ if(num>temp)temp=num,ans=x; if(num==temp&&x<ans)ans=x; if(p>9)return; for(int i=lst;i>0;i--) if(power(prime[p],i)<=n/x)dfs(x*power(prime[p],i),p+1,i,num*(i+1));}int main(){ freopen("antiprime.in","r",stdin); freopen("antiprime.out","w",stdout); scanf("%lld",&n); for(int i=1;i<=log2(n);i++)dfs(power(2,i),1,i,i+1); printf("%lld",ans); return 0;}
阅读全文
0 0
- BZOJ 1053 反素数【DFS剪枝】
- BZOJ 1053 反素数ant (DFS 反素数)
- BZOJ 1053 反素数(dfs)
- BZOJ 1053: [HAOI2007]反素数ant (DFS)
- BZOJ 1053: [HAOI2007]反素数ant 数论,DFS
- BZOJ 1053: [HAOI2007]反素数ant(DFS)
- bzoj 1053 反素数
- BZOJ-1053-反素数ant
- BZOJ 1053反素数ant
- bzoj 1053 反素数 HAOI2007
- [BZOJ]1053 [HAOI2007]反素数ant (因数个数分析+DFS搜索)
- [BZOJ1053] 反素数 - dfs
- [bzoj1053][dfs]反素数
- bzoj 1053 [HAOI2007] 反素数 ant 题解
- BZOJ 1053: [HAOI2007]反素数ant
- BZOJ 1053: [HAOI2007]反素数ant
- BZOJ 1053: [HAOI2007]反素数ant
- [BZOJ 1053][HAOI2007]反素数ant
- msm8916 dt选用规则
- 【C语言】实现一个简单SHELL应用
- C# 把数据字典表的数据自动生成为 js 键值对形式
- python lxml 安装
- QT编译出现错误 “undefined reference to ‘vtable for xxx’”
- BZOJ 1053 反素数【DFS剪枝】
- 微软有哪些很好的框架和设计理念?
- 机器翻译重要过程(1)---数据预处理
- PL\SQL Developer的安装
- 挑战程序竞赛系列(23):3.2折半枚举
- 简单封装strstr()
- R连接MongoDb
- TypeScript 高级类型整理
- ArcMap2SLD (ArcGIS导出SLD文件 )