[ Luogu 4626 ] 一道水题 II
\(\\\)
\(Description\)
求一个能被\([1,n]\) 内所有数整除的最小数字,并对 \(100000007\) 取模
- \(N\in [1,10^8]\)
\(\\\)
\(Solution\)
一道卡常好题 好吧是我常数太大了
考虑将限制区间内所有数质因数分解,对每一个质因子\(i\)记录下\(t_i\)表示,这个质因子在区间内任意一个数里,出现的最高幂次,那么答案就应该是每个质因子对应的最高幂之积。
质数可以线性筛 注意常数别写丑了 ,考虑如何求每一个质数的最高次幂。考虑将上限\(N\)除掉一次质因数\(p_i\),得到的数就代表原来那些含\(p_i\)的数的个数。于是一直将\(N\)除\(p_i\)至\(0\),那么合法的除的次数就是最高幂次的指数。
然后我写了个快速幂就\(T\)了......注意到迭代的同时是可以记录这个最高次幂的结果的,所以可以去掉快速幂的\(log\)复杂度虽然只快了几十毫秒依然卡着时限
\(\\\)
\(Code\)
#include<cmath>
#include<cstdio>
#include<cctype>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 100000010
#define R register
#define mod 100000007ll
using namespace std;
typedef long long ll;
bool vis[N];
int n,prm[N>>3];
inline void init(int n){
for(R int i=2;i<=n;++i){
if(!vis[i]) prm[++prm[0]]=i;
for(R int j=1,k;j<=prm[0]&&(k=prm[j]*i)<=n;++j){
vis[k]=1; if(i%prm[j]==0) break;
}
}
}
inline ll qpow(ll x,ll t){
ll res=1;
while(t){
if(t&1) (res*=x)%=mod;
(x*=x)%=mod; t>>=1;
}
return res;
}
int main(){
scanf("%d",&n); init(n);
R ll tmp,res,ans=1;
for(R int i=1;i<=prm[0];++i){
tmp=(ll)n; res=1;
while(tmp>=prm[i]) (res*=prm[i])%=mod,tmp/=prm[i];
(ans*=res)%=mod;
}
printf("%lld\n",ans);
return 0;
}
[ Luogu 4626 ] 一道水题 II的更多相关文章
- [Luogu] P4626 一道水题 II
---恢复内容开始--- 题目描述 一天,szb 在上学的路上遇到了灰太狼. 灰太狼:帮我们做出这道题就放了你. szb:什么题? 灰太狼:求一个能被 [1,n] 内所有数整除的最小数字,并对 100 ...
- [洛谷P4626]一道水题 II
题目大意:求$lcm(1,2,3,\cdots,n)\pmod{100000007}$,$n\leqslant10^8$ 题解:先线性筛出质数,然后求每个质数最多出现的次数,可以用$\log_in$来 ...
- NYOJ-525一道水题思路及详解
一道水题 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 今天LZQ在玩一种小游戏,但是这游戏数有一点点的大,他一个人玩的累,想多拉一些人进来帮帮他,你能写一个程序帮帮他 ...
- ny525 一道水题
一道水题时间限制:1000 ms | 内存限制:65535 KB 难度:2描述 今天LZQ在玩一种小游戏,但是这游戏数有一点点的大,他一个人玩的累,想多拉一些人进来帮帮他,你能写一个程序帮帮他吗? ...
- BNU29064——硬币水题II——————【事件概率】
硬币水题II Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld Java class name: ...
- LibreOJ #6165. 一道水题
二次联通门 : LibreOJ #6165. 一道水题 /* LibreOJ #6165. 一道水题 欧拉线性筛 其实题意就是求区间[1, n]所有数的最小公倍数 那么答案就是所有质因子最大幂次的乘积 ...
- 2018焦作网络赛 - Poor God Water 一道水题的教训
本题算是签到题,但由于赛中花费了过多的时间去滴吧格,造成了不必要的浪费以及智商掉线,所以有必要记录一下坑点 题意:方格从1到n,每一格mjl可以选择吃鱼/巧克力/鸡腿,求走到n格时满足 1.每三格不可 ...
- 牛客小白月赛9H论如何出一道水题(两个连续自然数互质)
题面 记录一下...连续得两个自然数互质,这题再特判一下1的情况 #include<bits/stdc++.h> using namespace std; int main() { lon ...
- UPC OJ 一道水题 STL
Problem C: 字符串游戏 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 10 Solved: 3 [Submit][Status][Web ...
随机推荐
- Ubuntu 16.04安装Ubuntu After Install工具实现常用软件批量安装
这个软件集成了常用且好用的软件,且只需要选择需要的软件之后自动安装好,不需要额外设置. 安装: sudo add-apt-repository ppa:thefanclub/ubuntu-after- ...
- linux 虚拟网卡
linux中可以通过一个物理网卡,模拟出多个虚拟网卡,并在网卡中配置ip. 下面做一个实验. 实验描述: 我们有server A (ip 10.79.148.205),server B (10.79. ...
- linux网络编程中的shutdown()与close()函数
1.close()函数 int close(int sockfd); //返回成功为0,出错为-1 close 一个套接字的默认行为是把套接字标记为已关闭,然后立即返回到调用进程,该套接字不能再由cl ...
- Python - 两个列表(list)组成字典(dict)
使用zip函数, 把key和value的list组合在一起, 再转成字典(dict). 代码: # -*- coding: utf-8 -*- keys = ['a', 'b', 'c'] value ...
- 【bzoj3288】Mato矩阵
题目大意:给定一个n阶行列式,第i行第j列为GCD(i,j),求这个行列式的值 高斯消元之后发现对角线上的东西是phi 于是线性筛出所有的欧拉函数即可 #include<algorithm> ...
- 在js中取选中的radio值
在js中取选中的radio值 <input type="radio" name="address" value="0" /> & ...
- UniDAC连接Embedded MySQL server
Simple question about MySQL embedded application. Post a reply 7 posts • Page 1 of 1 Simple ques ...
- 8-13 canvas专题-阶段练习二(下)
8-13 canvas专题-阶段练习二(下) <!DOCTYPE html> <html lang="zh-cn"> <head> <me ...
- 利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全)
利用JFreeChart生成折线图 (4) (转自 JSP开发技术大全) 14.4 利用JFreeChart生成折线图 通过JFreeChart插件,既可以生成普通效果的折线图,也可以生成3D效果的折 ...
- ModuleNotFoundError: No module named 'PIL'
错误:ModuleNotFoundError: No module named 'PIL' 解决办法: pip install Pillow