欢迎访问~原文出处——博客园-zhouzhendong

去博客园看该题解


传送门 - BZOJ1053


题目描述

  对于任何正整数x,其约数的个数记作g(x)。例如g(1)=1、g(6)=4。如果某个正整数x满足:g(x)>g(i) 0<i<x,则称x为反质数。例如,整数1,2,4,6等都是反质数。现在给定一个数N,你能求出不超过N的最大的反质数么?

(1<=N<=2,000,000,000)


题解

  对于任何一个数 $p$ ,令 $p=\prod_\limits{i\in \{prime\} } i^{q_i}$ ,则总有 $ g(p)=\prod_\limits{i\in \{prime\} } (q_i+1)$ 。

  命题1:如果 $p$ 是一个反素数,那么必然满足 $\forall i,j\in\{prime\} $ 如果 $i<j$ ,则 $q_i\geq q_j$ 。

  我们可以简单的证明这一点。即:若 $q_i<q_j$ 则 $i^{q_i}j^{q_j}\geq i^{q_j}j^{q_i}$ ,所以至少存在一个数 $q^\prime$ ,在满足 $g(q)=g(q^\prime)$ 的情况下,使得 $q^\prime < q$ 。这与之前 “$q$ 是反素数” 的定义相悖,所以命题1 得证。

  但是,可以见得,上述命题虽然具有充分性,但是不具有必要性。

  譬如:

  $a=2^13^15^1$

  $b=2^35^1$

  它们的因数个数都是 $8$ 。

  

  由于我们在证明了命题1 之后,很容易发现可能的反素数非常少。所以我们只要暴搜就可以了。

  建议判掉类似于上面举的例子的这种情况。


代码

#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cmath>
using namespace std;
typedef long long LL;
const LL prime[]={,,,,,,,,,};
LL n,ans,cnt;
void dfs(LL times,int pos,int ysz,int maxv){
if (ysz>cnt)
ans=times,cnt=ysz;
else if (ysz==cnt&&times<ans)
ans=times,cnt=ysz;
for (int i=;i<=maxv;i++){
times*=prime[pos];
if (times>n)
return;
dfs(times,pos+,ysz*(i+),i);
}
}
int main(){
scanf("%d",&n);
ans=cnt=;
dfs(,,,);
printf("%lld",ans);
return ;
}
 
 

BZOJ1053 [HAOI2007]反素数ant 数论的更多相关文章

  1. bzoj1053: [HAOI2007]反素数ant

    51nod有一道类似的题...我至今仍然不会写暴搜!!! #include<cstdio> #include<cstring> #include<iostream> ...

  2. [BZOJ1053] [HAOI2007] 反素数ant (搜索)

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

  3. BZOJ1053: [HAOI2007]反素数ant(爆搜)

    Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4163  Solved: 2485[Submit][Status][Discuss] Descript ...

  4. bzoj千题计划296:bzoj1053: [HAOI2007]反素数ant

    http://www.lydsy.com/JudgeOnline/problem.php?id=1053 求n以内约数个数最多的数 #include<cstdio> using names ...

  5. 【BZOJ1053】[HAOI2007]反素数ant 暴力

    [BZOJ1053][HAOI2007]反素数ant Description 对于任何正整数x,其约数的个数记作g(x).例如g(1)=1.g(6)=4.如果某个正整数x满足:g(x)>g(i) ...

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

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

  7. 【BZOJ】1053: [HAOI2007]反素数ant

    1053: [HAOI2007]反素数ant Description: g(x)表示x的约数个数,反素数:对于任意的i (i < x),均有g(i) < g(x),则x为反素数:现在输入不 ...

  8. bzoj 1053: [HAOI2007]反素数ant 搜索

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

  9. BZOJ 1053 [HAOI2007]反素数ant

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

随机推荐

  1. Hibernate非主键一对多关联。

    Unit表 id,code User表 id,ucode ...@ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name="ucode" ...

  2. python中修改工作目录

  3. JavaScript之JS单线程|事件循环|事件队列|执行栈

    本博文基于知乎"JavaScript作用域问题?"一问,而引起了对JavaScript事件循环和单线程等概念与实践上的研究.深入理解. 一.概念 0.关键词:JavaScript单 ...

  4. 有关ACM学习的博客链接

    大综合: 杭电OJ水题大全题解:http://blog.csdn.net/ysc504?viewmode=contents 14级浙江财经大学大佬:http://blog.csdn.net/jtjy5 ...

  5. python 面向对象的类

    参考<learn python hard way> 网址:https://learnpythonthehardway.org/book/ex41.html class X(Y) " ...

  6. weblogic基本目录介绍,位数查看,启动与发布项目,修改JVM参数,设置项目为默认项目

    这里的基本目录%base%表示安装目录,如我的目录为:E:/weblogic就是%base% 1.weblogic目录介绍 weblogic主要的目录介绍: 1.日志目录: 每个domain(域)都有 ...

  7. Netty+SpringBoot写一个基于Http协议的文件服务器

    本文参考<Netty权威指南> NettyApplication package com.xh.netty; import org.springframework.boot.SpringA ...

  8. Latex 公式颜色

    如何给这个公式加上颜色? 解决方法: \usepackage{xcolor} \begin{align}   \textcolor{red}{\int_a^b}\textcolor{blue}{f(x ...

  9. CMake 示例

    1.需求 [1].使用第三方动/静太库 [2].本身代码部分编译为动/静态库 [3]多项目管理 原文转自:http://blog.csdn.net/shuyong1999/article/detail ...

  10. 【转】Windows下安装python2和python3双版本

    [转]Windows下安装python2和python3双版本 现在大家常用的桌面操作系统有:Windows.Mac OS.ubuntu,其中Mac OS 和 ubuntu上都会自带python.这里 ...