三条引理:
1.1~N中最大的反质数,就是1~N中约数个数最多的最小的一个

比较显然,是应该看出来的一条

2.1~N中任何数的不同因子都不会超过10个,且所有质因子的指数之和不超过30:

2*3*5*7*11*13*17*19*23*29*31 > 2*10^9

2^30 > 2*10^9

3.x的质因子是连续的若干最小的质数,质数单调递减

如果有指数不单调,那么可以通过交换质因子的方式证出不是反质数或者更优

通过搜索实现:

枚举每个质因子的指数,根据引理1更新答案,根据引理2、3剪一些枝

不开longlong一时爽,一会提交火葬场

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n;
const int p[]={,,,,,,,,,,};
int ans,numans;//数和约数个数
void dfs(int pos,ll sum,int lst,int sumk,int cnt){//sumk指数之和,cnt为约数个数
if(sumk>)return;
if(pos==){
if(cnt>numans)ans=sum,numans=cnt;
else if(cnt==numans&&sum<=ans)ans=sum,numans=cnt;
return;
}
int s=;
for(int i=;i<=lst;i++){
dfs(pos+,sum*s,i,sumk+i,cnt*(i+));
s*=p[pos];
if((long long)(sum*s)>n)break;
}
}
int main(){
scanf("%d",&n);
dfs(,,,,);
printf("%d",ans);
}

[题解](约数)BZOJ_1053_反素数的更多相关文章

  1. 约数 求反素数bzoj1053 bzoj1257

    //约数 /* 求n的正约数集合:试除法 复杂度:O(sqrt(n)) 原理:扫描[1,sqrt(N)],尝试d能否整除n,若能,则N/d也能 */ ],m=; ;i*i<=n;i++){ ){ ...

  2. 【BZOJ1053】[HAOI2007]反素数

    [BZOJ1053][HAOI2007]反素数 题面 bzoj 洛谷 题解 可以从反素数的定义看出小于等于\(x\)的最大反素数一定是约数个数最多且最小的那个 可以枚举所有的质因数来求反素数,但还是跑 ...

  3. BZOJ 1053 [HAOI2007]反素数ant 神奇的约数

    本蒟蒻终于开始接触数学了...之前写的都忘了...忽然想起来某神犇在几个月前就切了FWT了... 给出三个结论: 1.1-N中的反素数是1-N中约数最多但是最小的数 2.1-N中的所有数的质因子种类不 ...

  4. BZOJ 1053: [HAOI2007]反素数ant dfs

    1053: [HAOI2007]反素数ant 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=1053 Description 对于任何正整 ...

  5. HAOI2007反素数

    1053: [HAOI2007]反素数ant Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1346  Solved: 732[Submit][Sta ...

  6. BZOJ 1053 [HAOI2007]反素数ant

    1053: [HAOI2007]反素数ant Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1948  Solved: 1094[Submit][St ...

  7. CodeForces - 27E--Number With The Given Amount Of Divisors(反素数)

    CodeForces - 27E Number With The Given Amount Of Divisors Submit Status Description Given the number ...

  8. [HAOI 2007]反素数ant

    Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4. 如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数.例如,整数 ...

  9. BZOJ1053 [HAOI2007]反素数ant 数论

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 传送门 - BZOJ1053 题目描述 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4.如果某个正 ...

随机推荐

  1. [usaco2008feb_gold]路面修整

      FJ打算好好修一下农场中某条凹凸不平的土路.按奶牛们的要求,修好后的路面高度应当单调上升或单调下降,也就是说,高度上升与高度下降的路段不能同时出现在修好的路中. 整条路被分成了N段,N个整数A_1 ...

  2. 狂配Nginx

    一 .Nginx虚拟主机配置(  基于不同的域名,跳转到不同的项目) 1.基于域名的虚拟主机,通过域名来区分虚拟主机——应用:外部网站 2.基于端口的虚拟主机,通过端口来区分虚拟主机——应用:公司内部 ...

  3. 动态inventory脚本的python实现

    #!/usr/bin/env python # -*- coding: utf-8 -*- ''' 基于python的动态inventory脚本实例 ''' import os import sys ...

  4. 用 Flotr2 实现的 HTML5 图表

    1. [图片] 未命名.jpg ​2. [代码][HTML]代码 <!DOCTYPE html><html lang="en" >    <head& ...

  5. DNS多出口分析

    DNS多出口分问题现象:当dns解析出的ip非域名的本地覆盖组,则怀疑是DNS多出口或者DNS劫持.接下来判断该ip是否为网宿ip,如果不是,则是劫持问题,走劫持流程进行反馈.如果是网宿ip,则用以下 ...

  6. HDU3065(AC自动机入门题)

    病毒侵袭持续中 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Sub ...

  7. Redis的小白应用

    在window下测试学习redis 步骤: 1.先下载安装 redis,(conf文件制定配置文件(redis-server.exe  redis.conf ),若不指定则默认), 基本上我是直接点击 ...

  8. 关于数组array的一些误区

    $arr1 = array(1,2,3,4); $arr2 = array(5,6,7,8,9,10); var_dump ( $arr1 + $arr2);    //输出数组形式的(1,2,3,4 ...

  9. 从使用os.system)在python命令(重定向标准输入输出

    从使用os.system)在python命令(重定向标准输入输出 python 标准输出stdout stdio os.system通常我可以通过改变sys.stdout的值在python更改标准输出 ...

  10. python--numpy模块、spicy模块、 matplotlib模块

    一:numpy模块 ndarray:存储单一数据类型的多维数组 ufunc:能够对数组进行处理的函数(universal function object) #numpy 中arange用法,指定开始值 ...