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
 
这道题博主们都直觉证明法搞得我这种蒟蒻怀疑自己的正确性了好吧……我们一起来证一证。
 
 一是尽可能取约数数目大的,然后如果数量相同只能取最小的那个才算保证了反质数,这个地方不多说;
 
二是不同的质因子(2,3,5,……)不会超过10个,因为2*3*5*……*29*31爆int了,而29是第10个。
 
三是反质数的因子一定是2、3、5、……、23、29里面选的,不会存在31以后的。原因:选了31及以上的,就注定有0~29的要选不上(根据第二条)。那么举例来说,如果是选了31而没选2,那这个数除掉31再乘上2^4显然可以得到更多约数吧;如果是选了31而没选29,那这个数除掉31再乘29,约数个数没变,数却变小了,显然刚才那个31的不是反质数(根据定义)。为什么29、23这种的就没问题而31就不可以呢?因为选29和选2不冲突啊~
 
四是把数唯一分解成2^c1 * 3^c2 * 5^c3 * …… * 29^c10的话,c1 >= c2 >= c3 >=……>=c10。原因:我们知道约数总个数用乘法原理组合计算一下为(c1+1)*(c2+1)*……(c10+1),这个+1证明时用不上啦,那就di = ci + 1吧,即d3 = c3+1。约数数量就是d1*d2*d3*……*d10了。不失一般性地我们在这里举例描述吧,假设d3 > d1,那么如果存在一个正整数x <= d3,使得(d1+x)*(d3-x)>=d1*d3,则当前这个数不是反质数。上式的意义是:如果先除掉5的x次幂再乘上2的x次幂以后约数变大了或者约数相等(但是数却变小了对吧),则违反反质数定义。然后不等式解一下得x <= c3-c1。结论已经很明显了不再解释。
 
搜索部分不说了,主要是弥补一下其他博客证明的部分。
PS:反质数有性质4,不代表有性质4的都是反质数。搜索的过程中自然会搜到真的反质数和假的反质数,但真金不怕火炼,他们都会被最后的最大反质数更新掉。
 
 #include <cstdio>
#define ll long long
#define R(x) scanf("%d", &x)
#define W(x) printf("%d\n", x)
#define rep(i, a, b) for (int i = a; i <= b; i++) int n, ans, CNT;
int primes[] = {, , , , , , , , , }; void dfs(int i, int num, int cnt, int last) {
if (i == ) {
if (cnt > CNT || (cnt == CNT && ans > num))
ans = num, CNT = cnt;
return;
} ll t = ;
rep(j, , last) {
if (num * t > n) break; dfs(i + , num * t, cnt * (j+), j);
t *= primes[i];
}
} int main() {
R(n);
dfs(, , , );
W(ans);
}

BZOJ1053(数学结论进行剪枝搜索)的更多相关文章

  1. alpha-beta剪枝搜索

    •一种基于剪枝( α-βcut-off)的深度优先搜索(depth-first search). •将走棋方定为MAX方,因为它选择着法时总是对其子节点的评估值取极大值,即选择对自己最为有利的着法: ...

  2. poj 1416 (hdu 1539)Shredding Company:剪枝搜索

    点击打开链接 题目大意是有一个分割机,可以把一串数字分割成若干个数字之后求和,题目输入一个数字上界和待分割的数字,让我们求出分割后数字之和在不超过给定max的情况下的最大值,并且给出分割方案,如果没有 ...

  3. HDU 2437 Jerboas (剪枝搜索)

    题意:给定一幅图,图上有两种点T,P.......一只跳鼠在一个T点作为起始点,它想通过图上的路到达某个P点,P点满足如下要求: (1).到达P点的途中路径权值为k的倍数 (2).尽量让路径权值取最小 ...

  4. HDU 4620 Fruit Ninja Extreme(2013多校第二场 剪枝搜索)

    这题官方结题报告一直在强调不难,只要注意剪枝就行. 这题剪枝就是生命....没有最优化剪枝就跪了:如果当前连续切割数加上剩余的所有切割数没有现存的最优解多的话,不需要继续搜索了 #include &l ...

  5. UVa 11762 Race to 1 (数学期望 + 记忆化搜索)

    题意:给定一个整数 n ,然后你要把它变成 1,变换操作就是随机从小于等于 n 的素数中选一个p,如果这个数是 n 的约数,那么就可以变成 n/p,否则还是本身,问你把它变成 1 的数学期望是多少. ...

  6. 数学结论【p1463】[POI2002][HAOI2007]反素数

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

  7. uva 11762 数学期望+记忆化搜索

    题目大意:给一个正整数N,每次可以在不超过N的素数中随机选择一个P,如果P是N的约数,则把N变成N/p,否则N不变,问平均情况下需要多少次随机选择,才能把N变成1? 分析:根据数学期望的线性和全期望公 ...

  8. POJ 3134 Power Calculus (迭代剪枝搜索)

    题目大意:略 题目里所有的运算都是幂运算,所以转化成指数的加减 由于搜索层数不会超过$2*log$层,所以用一个栈存储哪些数已经被组合出来了,不必暴力枚举哪些数已经被搜出来了 然后跑$iddfs$就行 ...

  9. USACO4.1 Beef McNuggets【数学/结论】

    吐槽/心路历程 打开这道题的时候:*&@#%*#?!这不是小凯的疑惑吗?好像还是个加强版的?我疑惑了.原来$USACO$才是真的强,不知道什么时候随随便便就押中了题目. 对于我这种蒟蒻来说,这 ...

随机推荐

  1. UVA1482 Playing With Stones —— SG博弈

    题目链接:https://vjudge.net/problem/UVA-1482 题意: 有n堆石子, 每堆石子有ai(ai<=1e18).两个人轮流取石子,要求每次只能从一堆石子中抽取不多于一 ...

  2. legend2---开发日志13(layer_mobile的content传入dom 出现【object object】如何解决)

    legend2---开发日志13(layer_mobile的content传入dom 出现[object object]如何解决) 一.总结 一句话总结: layer_mobile.content只能 ...

  3. 通过Chrome浏览器进行android调试/Remote Debugging on Android with Chrome

    The way your web content behaves on mobile can be dramatically different from the desktop experience ...

  4. 51nod最长递增路径:(还不错的图)

    一个无向图,可能有自环,有重边,每条边有一个边权.你可以从任何点出发,任何点结束,可以经过同一个点任意次.但是不能经过同一条边2次,并且你走过的路必须满足所有边的权值严格单调递增,求最长能经过多少条边 ...

  5. JAVA 需要理解的重点 二

    1.常用设计模式 单例模式:懒汉式.饿汉式.双重校验锁.静态加载,内部类加载.枚举类加载.保证一个类仅有一个实例,并提供一个访问它的全局访问点. 代理模式:动态代理和静态代理,什么时候使用动态代理. ...

  6. CSS3:CSS 参考手册

    ylbtech-CSS:CSS 参考手册 1.返回顶部 1. W3School 的 CSS 参考手册定期通过所有主流浏览器进行测试. CSS 属性 CSS 属性组: 动画 背景 边框和轮廓 盒(框) ...

  7. CPU、内存、硬盘分区的检测.py

    cpu_mem_directories.py   CPU.内存.硬盘分区的检测 #!/usr/bin/env python #coding:utf-8 import psutil import tim ...

  8. Unity3D 开发ios时困扰多时游戏开始画面图片的分辨率

  9. Mertens

    题意: 求解$\sum_{i=a}^b{\mu(i)}$. 解法: 由$(\mu * I)(n) = e(n)$ 得 $\sum_{d|n}{\mu(d)} = [n=1]$ 得 $\mu(n) = ...

  10. Kafka入门之生产者消费者

    一.Kafka安装与使用 ( kafka介绍     ) 1. 下载Kafka 官网 http://kafka.apache.org/    以及各个版本的下载地址 http://archive.ap ...