bzoj 1053 [HAOI2007]反素数ant——关于质数的dfs / 打表
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1053
写了个打表程序。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int lst=,cnt,N=2e9,fx=,knt;
int main()
{
for(int i=;i<=N;i+=fx)
{
cnt=;int k=i;
for(int j=;j*j<=k;j++)
{
int ct=;
if(k%j==)
{
if(j!=&&(j&)==){cnt=;break;}
while(k%j==)k/=j,ct++;
}
cnt*=ct+;
}
if(k>)cnt<<=;
if(cnt>lst)printf("%d ",i),lst=cnt,knt++;
if(i==)fx=;
if(i==)fx=;
if(i==)fx=;
}
return ;
}
打了个表过了……
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n;
int c[]={,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,
,,,,,,,,,,,
,,,,,,,,,
,,,,,,,,
,,,,,,};
int main()
{
scanf("%d",&n);
for(int i=;i>=;i--)
if(c[i]<=n)
{
printf("%d\n",c[i]);break;
}
return ;
}
然而实际上是dfs。
首先要发现质因数数量一定时越小的质因数应该越多。如果有一个质因数较大而较多,可以把它的数量与一个较小的质因数的数量换一下,这样算出来的约数个数不变,而答案更优。
然后发现2*3*5*7*11*13*17*19*23*29大于2e9。因为上面一行的性质,所以用到的最大的质数是23。
然后就能爆搜了。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
int n,mx,ans,pri[]={,,,,,,,,};
void dfs(int ps,int cnt,int lst,ll w)
{
if(cnt>mx)mx=cnt,ans=n+;
if(cnt==mx)ans=min(ans,(int)w);
if(ps>)return;//放在这!
for(int i=;i<=lst&&w<=n;i++,w*=pri[ps])//为什么不能从1开始?
dfs(ps+,cnt*(i+),i,w);
}
int main()
{
scanf("%d",&n);
dfs(,,,);
printf("%d\n",ans);
return ;
}
bzoj 1053 [HAOI2007]反素数ant——关于质数的dfs / 打表的更多相关文章
- BZOJ 1053: [HAOI2007]反素数ant dfs
1053: [HAOI2007]反素数ant 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=1053 Description 对于任何正整 ...
- bzoj 1053: [HAOI2007]反素数ant 搜索
1053: [HAOI2007]反素数ant Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1497 Solved: 821[Submit][Sta ...
- BZOJ 1053 [HAOI2007]反素数ant
1053: [HAOI2007]反素数ant Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1948 Solved: 1094[Submit][St ...
- BZOJ 1053 [HAOI2007]反素数ant 神奇的约数
本蒟蒻终于开始接触数学了...之前写的都忘了...忽然想起来某神犇在几个月前就切了FWT了... 给出三个结论: 1.1-N中的反素数是1-N中约数最多但是最小的数 2.1-N中的所有数的质因子种类不 ...
- BZOJ 1053 [HAOI2007]反素数ant(约数个数)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1053 [题目大意] 于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6 ...
- 【BZOJ 1053】 1053: [HAOI2007]反素数ant (反素数)
1053: [HAOI2007]反素数ant Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4.如果某个正整数x满足:g(x)>g(i) 0&l ...
- BZOJ(8) 1053: [HAOI2007]反素数ant
1053: [HAOI2007]反素数ant Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4118 Solved: 2453[Submit][St ...
- 【BZOJ】1053: [HAOI2007]反素数ant
1053: [HAOI2007]反素数ant Description: g(x)表示x的约数个数,反素数:对于任意的i (i < x),均有g(i) < g(x),则x为反素数:现在输入不 ...
- 1053: [HAOI2007]反素数ant
1053: [HAOI2007]反素数ant Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3480 Solved: 2036[Submit][St ...
随机推荐
- iOS开发系列-Block本质篇
概述 在iOS开发中Block使用比较广泛,对于使用以及一些常规的技术点这里不再赘述,主要利用C++角度分析Block内部数据底层实现,解开开发中为什么这样编写代码解决问题. Block底层结构窥探 ...
- iOS之CATiledLayer的属性简介和使用
1.CATiledLayer简介 CATiledLayer用于大型图片进行分割显示,需要显示的图片才会加载,直接上代码: - (void)viewDidLoad { [super viewDidLoa ...
- JDK源码阅读--HashMap
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, ...
- Qt源码下载
这是官方下载地址:http://qt.nokia.com/downloads 点击右下角的 ftp.qt.nokia.com - Archive You can find our archive of ...
- HBase访问接口
- linux删除登录日志及历史命令
参考:https://blog.51cto.com/study2008/2301555 基本常用清理linux日志: # echo > /var/log/wtmp //清除用户登录记录 # ec ...
- Luogu P4932 浏览器(二进制)
P4932 浏览器 题意 题目背景 __stdcall在用\(Edge\)玩\(slay\)的时候,鼠标会经常失灵,这让她十分痛苦,因此她决定也要让你们感受一下\(Edge\)制造的痛苦. 题目描述 ...
- warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
解决方法:是所有项目的这个"代码生成"属性设置保持一致. 项目——属性——配置属性——C/C++——代码生成:他有/MT,/MTd,/Md,/MDd四个选项,你必须让所有使用的库都 ...
- odoo:Actions
actions定义了系统对于用户的操作的响应:登录.按钮.选择项目等. 一:窗口action(ir.actions.act_window ) 最常用的action类型,用于将model的数据展示出来. ...
- hdu1693 Eat the Trees [插头DP经典例题]
想当初,我听见大佬们谈起插头DP时,觉得插头DP是个神仙的东西. 某大佬:"考场见到插头DP,直接弃疗." 现在,我终于懂了他们为什么这么说了. 因为-- 插头DP很毒瘤! 为什么 ...