ZOJ 2562 More Divisors(高合成数)】的更多相关文章

ZOJ 2562 More Divisors(高合成数) ACM 题目地址:ZOJ 2562 More Divisors 题意:  求小于n的最大的高合成数,高合成数指一类整数,不论什么比它小的自然数的因子数目均比这个数的因子数目少. 分析:  网上都叫它反素数,事实上我查了一下,翻素数应该是正着写倒着写都是素数的素数.这个应该叫高合成数,见Wikipedia: Highly composite number 高合成数有下面特征:  where p1<p2<⋯<pk are prime,…
又是个水题,刚刚开始没有用搜索,因为对于反素数有: n=2^t1*3^t2^5^t3*7^t4..... 这里有 t1>=t2>=t3>=t4. 而且相同的因数的情况下,素数越不同越好. 哪知道这个方法错了! = =. 看来还得中规中矩得用dfs. 我觉得还可以优化下,感觉搜索干了很多无用的活儿. 搜索还得好好练练啊... #include<cstdio> #define LL long long using namespace std; ] = { , , , , , ,…
反素数: 对于不论什么正整数x,起约数的个数记做g(x).比如g(1)=1,g(6)=4. 假设某个正整数x满足:对于随意i(0<i<x),都有g(i)<g(x),则称x为反素数. ZOJ 2562 反素数 由于写了POJ 2886的线段树.然后里面有反素数,曾经没遇到过,所以先搞这两题普及一下知识再说. #include<iostream> #include<cstdio> #include<cstring> #include<algorith…
题目大意:求n范围内最大的反素数(反素数定义:f(x)表示x的因子数,f(x)>f(x1) (0<x1<x)) x用质因数形式为:x=a1^p1*a2^p2......an^pn(ai为素数),那么一个数的因子个数f(x)=(p1+1)*(p2+1)*....*(pn+1) 反素数的性质有:x=a1^p1*a2^p2......an^pn,p1>=p2>=......>=pn 证明:若pi<pj(i<j),那么存在与它因子个数相等的x1且x1<x,与反…
 1.burnside定理,polya计数法 这个专题我单独写了个小结,大家可以简单参考一下:polya 计数法,burnside定理小结 2.置换,置换的运算 置换的概念还是比较好理解的,<组合数学>里面有讲.对于置换的幂运算大家可以参考一下潘震皓的那篇<置换群快速幂运算研究与探讨>,写的很好. *简单题:(应该理解概念就可以了) pku3270 Cow Sorting http://acm.pku.edu.cn/JudgeOnline/problem?id=3270 pku…
从这个FB开始写博客啦. 也不知道会坚持多久…… = =似乎要加一句转载请注明出处 http://www.cnblogs.com/DancingOnTheTree/p/4026076.html http://www.lydsy.com/JudgeOnline/problem.php?id=3737 因为是好玩的数学题所以刚看见的时候就想捉了……但是无限耽搁这两天才处理掉. 交上去各种瑕疵CE…… 改好发现数组开小各种RE…… 然后各种TLE…… 小看数据了= =. 看到题拿各种公式套,似乎是按因…
Who Gets the Most Candies? Time Limit: 5000 MS Memory Limit: 0 KB 64-bit integer IO format: %I64d , %I64u Java class name: Main [Submit] [Status] [Discuss] Description N children are sitting in a circle to play a game. The children are numbered from…
借用了下东北师大ACM的反素数模版. 本来我是在刷线段树的,有一题碰到了反素数,所以学了一下..有反素数的存在,使得一个x ,使得x的约数个数,在1 到 x的所有数里面,是最大的. 这里面还涉及安叔那天讲的求一个数的约数个数,用其素数因子的指数相乘即可. 这是东北师大的模版: typedef __int64 INT; INT bestNum; //约数最多的数 INT bestSum; //约数最多的数的约数个数 ; //反素数的个数 INT n=;//求n以内的所有的反素数 INT rprim…
给出n个点,要你找到一个三角形,它的高是最长的. 思路:暴力超时了,是用先找出n个点与其他点的最长边,再枚举顶点过的.......具体证明不知道..... #include<algorithm> #include<cstdio> #include<cstring> #include<cmath> using namespace std; #define eps 1e-8 struct point { double x; double y; }; //点到直线…
// f(n)表示 n的约数和 不包括自己// 给你一个m 求1 到 100万里面 f(n)<=m 的个数// 那么首先要用筛选求出所有出 f(n)// 然后就好办了 // 写好后 看见别人好快 去百度了下 发现有用二分的 用了下 快了 100Ms 不过 数据越大 二分优势越明显#include <iostream> #include <math.h> #include <map> #include <stack> #include <queue…