ZOJ- 2562 反素数使用
借用了下东北师大ACM的反素数模版。
本来我是在刷线段树的,有一题碰到了反素数,所以学了一下。。有反素数的存在,使得一个x ,使得x的约数个数,在1 到 x的所有数里面,是最大的。
这里面还涉及安叔那天讲的求一个数的约数个数,用其素数因子的指数相乘即可。
这是东北师大的模版:
typedef __int64 INT;
INT bestNum; //约数最多的数
INT bestSum; //约数最多的数的约数个数
const int M=; //反素数的个数
INT n=;//求n以内的所有的反素数
INT rprim[M][];
//2*3*5*7*11*13*17>n,所以只需考虑到17即可
INT prim[]={,,,,,,,,,}; //当前走到num这个数,接着用第k个素数,num的约数个数为sum,
//第k个素数的个数上限为limit
void getNum(INT num,INT k,INT sum,INT limit) {
if(num>n)return;
if(sum>bestSum){
bestSum = sum;
bestNum = num;
}else if(sum == bestSum && num < bestNum){ //约数个数一样时,取小数
bestNum = num;
}
if(k>=) return; //只需考虑到素数17,即prim[6] for(INT i=,p=;i<=limit;i++){ //素数k取i个
p*=prim[k];
if(p>n||p*num>n) return; //这里也要判断一下,否则老是爆掉。
getNum(num*p,k+,sum*(i+),i);
}
} INT log2(INT n){ //求大于等于log2(n)的最小整数
INT i = ;
INT p = ;
while(p<n){
p*=;
i++;
}
return i;
} int getrprim(){//反素数的个数
int i = ;
while(n>){
bestNum = ;
bestSum = ;
getNum(,,,log2(n));
n = bestNum - ;
rprim[i][]=bestNum;
rprim[i][]=bestSum;
i++;
}
return i;
}
ZOJ 2562的代码
#include <iostream>
#include <cstdio>
typedef long long ll;
using namespace std;
ll prime[]={,,,,,,,,,,,,,,,};
ll antinum;
ll antisum;
ll antiprime[][];
ll maxn;
ll log2(ll n)
{
ll i=,p=;
while (p<n)
{
p*=;
i++;
}
return i;
}
void getanti(ll num,ll sum,ll k,ll limit)
{ if (num > maxn) return;
//cout<<num<<endl;
if (sum>antisum) {antisum=sum;antinum=num;}
else
if (sum==antisum&&num<antinum) antinum=num;
if (k>) return;
for (ll i=,p=;i<=limit;i++)
{
p*=prime[k];
if (p>maxn||num*p>maxn) return;
getanti(num*p,sum*(i+),k+,i);
}
}
void getnum()
{
antinum=;
antisum=;
//cout<<maxn<<endl;
getanti(,,,); }
int main()
{
//printf("%I64d\n",maxn);
// ll cur=getnum();
ll t;
//cout<<cur<<endl;
// for (int i=cur-1;i>=0;i--)
//cout<<antiprime[i][0]<<endl;
while (scanf("%lld",&t)!=EOF)
{
maxn=t;
getnum();
printf("%lld\n",antinum);
}
return ;
}
ZOJ- 2562 反素数使用的更多相关文章
- zoj 2562 反素数
题目大意:求n范围内最大的反素数(反素数定义:f(x)表示x的因子数,f(x)>f(x1) (0<x1<x)) x用质因数形式为:x=a1^p1*a2^p2......an^pn(a ...
- zoj 1562 反素数 附上个人对反素数性质的证明
反素数的定义:对于不论什么正整数,其约数个数记为.比如,假设某个正整数满足:对随意的正整 数.都有,那么称为反素数. 从反素数的定义中能够看出两个性质: (1)一个反素数的全部质因子必定是从2開始的连 ...
- ZOJ 2562 HDU 4228 反素数
反素数: 对于不论什么正整数x,起约数的个数记做g(x).比如g(1)=1,g(6)=4. 假设某个正整数x满足:对于随意i(0<i<x),都有g(i)<g(x),则称x为反素数. ...
- ZOJ 2562 More Divisors(高合成数)
ZOJ 2562 More Divisors(高合成数) ACM 题目地址:ZOJ 2562 More Divisors 题意: 求小于n的最大的高合成数,高合成数指一类整数,不论什么比它小的自然数 ...
- poj 2886 线段树的更新+反素数
Who Gets the Most Candies? Time Limit: 5000 MS Memory Limit: 0 KB 64-bit integer IO format: %I64d , ...
- 【POJ2886】Who Gets the Most Candies?-线段树+反素数
Time Limit: 5000MS Memory Limit: 131072K Case Time Limit: 2000MS Description N children are sitting ...
- Prime & 反素数plus
题意: 求因数个数为n的最小正整数k. n<=10^9输出其唯一分解形式 SOL: 模拟题,一眼看过去有点惊讶...这不是我刚看过的反素数吗... 咦数据怎么这么大,恩搞个高精吧... 于是T了 ...
- BZOJ 1053 & 反素数
题意: 反素数,膜一篇GOD's Blog...http://blog.csdn.net/ACdreamers/article/details/25049767 此文一出,无与争锋... CODE: ...
- Who Gets the Most Candies?(线段树 + 反素数 )
Who Gets the Most Candies? Time Limit:5000MS Memory Limit:131072KB 64bit IO Format:%I64d &am ...
随机推荐
- 047、Java中使用if…else if…else判断
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- 在xampp下安装thinkphp5
在xampp2016下安装thinkphp5 (本人的坑,说白了就是把thinkphp5的文件放到htdocs下) 1.把该xampp中的php文件夹路径设置进环境变量,这样才能全局运行compose ...
- MyBatis笔记(一)
MyBatis学习随笔 第一个MyBatis项目 创建项目 导入maven依赖,根据需要选择性添加mysql/oracle,spring,spring-mybatis等依赖,这里就不一一列出了 < ...
- svn全局设置过滤文件没有作用的解决办法
svn全局设置过滤文件,网上教程文章很多, 都说了怎么配置,没有强调配置内容的格式 导致用惯了git的人,上手配置后,不起作用. 下面是我的配置内容: .classpath .project .set ...
- Spring Aop 原理分析
@EnableAspectJAutoProxy Aop功能开启注解 为容器中导入 @Import(AspectJAutoProxyRegistrar.class)组件,在其重写方法中为 ioc容器 注 ...
- tomcat-jvm内存问题
http://www.360doc.com/content/14/0617/12/114824_387440563.shtml http://27091497.blog.163.com/blog/st ...
- Zookeeper 在 Kafka 中的作用
https://www.jianshu.com/p/a036405f989c 待整理...
- Power BI 安装注册教程
把下载好的MSI包PBIDesktop_x64.msi 双击安装 点击下一步 选择文件路径 点击安装 点击完成 初始化中 安装完成界面 账号注册 https://powerbi.microsoft.c ...
- segger rtt 输出 log
调试 mcu 的时候,使用 jlink 的 rtt 可以方便的输出信息. 输出有两种模式, client 和 logger. client 必须依附其他程序,比如说 mdk 调试状态,或者 logge ...
- 第七篇 Django-认证系统
Django-认证系统 阅读目录(Content) 1 Cookie 与 Session 概念 查看cookie 登陆应用 Django中操作Cookie 1.获取Cookie 2.设置Cookie ...