$loj530\ [LibreOJ\ \beta\ Round \#5]$ 最小倍数 数论
正解:数论
解题报告:
不想做题,来水点儿简单点的$QwQ$.
一个显然的点在于可以直接对不同质因子分别算$n_{min}$最后取$max$.
这个正确性还是蛮显然的?因为只要有$n\geq n_{min}$就一定能整除这个质因子呗$QwQ$.
现在就只要分别求这个$n_{min}$了
考虑二分呗,然后$n!$中$x$的指数之和就是$\sum \frac{n}{x^i}$
$over$
一个优化是从大到小枚举这个$pr$这样二分的次数少些计算就少些,不然会$T$,$QAQ$.
#include<bits/stdc++.h>
using namespace std;
#define il inline
#define gc getchar()
#define ll long long
#define ri register int
#define rb register bool
#define rc register char
#define rp(i,x,y) for(ri i=x;i<=y;++i)
#define my(i,x,y) for(ri i=x;i>=y;--i) const int N=1e4;
int pr[N+],pr_cnt;
ll a[N];
bool is_pr[N+]; il ll read()
{
ll x=;rb y=;rc ch=gc;
while(ch!='-' && (ch>'' || ch<''))ch=gc;
if(ch=='-')y=,ch=gc;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=gc;
return y?x:-x;
}
il void pre(){rp(i,,N)if(!is_pr[i]){if(pr_cnt<)pr[++pr_cnt]=i;for(ri j=1ll*i*i;j<=N;j+=i)is_pr[j]=;}} int main()
{
//freopen("530.in","r",stdin);freopen("530.out","w",stdout);
pre();ri T=read();
while(T--)
{
ri m=read();ll as=;
rp(i,,m)a[i]=read();
my(i,m,)
{
ll l=as,r=1ll*a[i]*pr[i];//printf("l=%lld r=%lld %lld*%d\n",l,r,a[i],pr[i]);
while(l<r)
{
ll mid=(l+r)>>,t1=,t2=mid;while(t2 && t1<a[i])t2/=pr[i],t1+=t2;
if(t1>=a[i])r=mid;else l=mid+;
}
as=max(as,l);
}
printf("%lld\n",as);
}
return ;
}
随机推荐
- 大侦探福老师——幽灵Crash谜踪案
闲鱼Flutter技术的基础设施已基本趋于稳定,就在我们准备松口气的时候,一个Crash却异军突起冲击着我们的稳定性防线!闲鱼技术火速成立侦探小组执行嫌犯侦查行动,经理重重磨难终于在一个隐蔽的角落将其 ...
- @codeforces - 1209G2@ Into Blocks (hard version)
目录 @description@ @solution@ @accepted code@ @details@ @description@ 定义一个序列是好的,当且仅当这个序列中,相等的两个数之间的所有数 ...
- java基础-内存分配
1.java运行时的数据区:程序计数器.方法区.虚拟机栈.本地方法栈.堆 ①.程序计数器:一块较小的内存空间,可看作当前线程所执行的字节码的行号指示器 ②.java虚拟机栈:与程序计数器一样,也是线程 ...
- oracle函数 INSTRB(C1,C2[,I[,J]])
[功能]在一个字符串中搜索指定的字符,返回发现指定的字符的位置; [说明]多字节符(汉字.全角符等),按2个字符计算 [参数] C1 被搜索的字符串 C2 希望搜索的字符串 I 搜 ...
- LInux下编译发生的libc相关错误
在某主机上编译程序,发生有找不到libc的问题,自己写了个简单的hello world程序,编译也失败,报错如下: # gcc -o 1 1.c /usr/bin/ld: skipping incom ...
- 使用vux组件库常见报错($t)处理
错误一: [Vue warn]: Property or method "$t" is not defined on the instance but referenced dur ...
- H3C 路由器的特点
- yeoman&bower
一.Yeoman 在nodejs环境下安装: npm install -g yo 然后安装所需要的generator,generator是npm包,命名为generator-xyz,比如安装angul ...
- node第一个参数必须是err
Node.js 约定回调函数第一个参数必须是错误对象err: 问题:Node.js约定回调函数第一个参数必须是错误对象err,如果没有错误该参数就是null 原因:异步执行分成两段,在两段之间抛出异常 ...
- 原 Linux:ping不通baidu.com
如果某台Linux服务器ping不通域名, 如下提示: [root@localhost ~]# ping www.baidu.com ping: unknown host www.baidu.com ...