CIA3 Sometimes Naive(莫比乌斯反演+积性函数前缀和)
来源:互联网 发布:linux连接数 编辑:程序博客网 时间:2024/06/15 19:10
题意:求
根据各种老套路化简得
因此我们只需要处理出f[i]=
tips:f数组要开ll哟~
#include <bits/stdc++.h>#define ll long long#define N 10000010using namespace std;inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar(); return x*f;}int tst,n,m,fai[N],prime[N/10],tot=0,mu[N],mnfac[N];ll f[N];bool notprime[N];void Mobius(){ notprime[1]=1;mu[1]=1;fai[1]=1;f[1]=1; for(int i=2;i<=1e7;++i){ if(!notprime[i]){ prime[++tot]=i;mu[i]=-1;fai[i]=i-1; f[i]=fai[i]-1;mnfac[i]=i; }for(int j=1;prime[j]*i<=1e7;++j){ notprime[prime[j]*i]=1; if(i%prime[j]==0){ mu[i*prime[j]]=0;fai[i*prime[j]]=fai[i]*prime[j]; mnfac[i*prime[j]]=mnfac[i]*prime[j]; if(mnfac[i*prime[j]]==i*prime[j]){ f[i*prime[j]]=fai[i*prime[j]]-fai[i]; }else f[i*prime[j]]=f[i/mnfac[i]]*f[mnfac[i*prime[j]]]; break; }mu[i*prime[j]]=-mu[i];fai[i*prime[j]]=fai[i]*fai[prime[j]]; mnfac[i*prime[j]]=prime[j];f[i*prime[j]]=f[i]*f[prime[j]]; } }for(int i=1;i<=1e7;++i) f[i]+=f[i-1];}int main(){ // freopen("a.in","r",stdin); tst=read();Mobius(); while(tst--){ n=read();m=read();if(n>m) swap(n,m);ll ans=0;int last=0; for(int i=1;i<=n;i=last+1){ last=min(n/(n/i),m/(m/i)); ans+=(ll)(f[last]-f[i-1])*(n/i)*(m/i); } printf("%lld\n",ans); } return 0;}
阅读全文
0 0
- CIA3 Sometimes Naive(莫比乌斯反演+积性函数前缀和)
- [莫比乌斯反演 积性函数前缀和] BZOJ 2693 jzptab
- [莫比乌斯反演 积性函数前缀和] 51Nod 1190 最小公倍数之和 V2
- [莫比乌斯反演 积性函数前缀和] BZOJ 4407 于神之怒加强版
- HDU 5608 莫比乌斯反演 + 莫比乌斯函数前缀和
- 线性筛求莫比乌斯反演函数+分块+前缀和
- HDU 6053 TrickGCD(莫比乌斯反演+前缀和)
- 积性函数、线性筛、莫比乌斯反演和一堆乱七八糟的题目
- 【BZOJ2301】【HAOI2011】Problem b 莫比乌斯反演+分块+前缀和
- BZOJ 2301 - 莫比乌斯反演 + 前缀和 + 分块计算
- HDU 4746 Mophues(有趣的前缀和/莫比乌斯反演)
- SPOJ7001 Visible Lattice Points 莫比乌斯反演+分块+前缀和
- SPOJ4491 Primes in GCD Table 莫比乌斯反演+分块+前缀和
- BZOJ 3529 莫比乌斯反演 + 离线 + 树状数组动态维护前缀和
- 莫比乌斯函数和反演定理的理解
- 51nod 1244 莫比乌斯函数之和(积性函数前缀和)
- 莫比乌斯反演函数
- 莫比乌斯反演函数
- 使用 CUBLAS 库给矩阵运算提速
- 【MySQL】并发控制
- 三层交换机实现路由功能配置示例与详解 (Cisco Packer Tracer 模拟器)
- Spark Scala 分组排序取TopN
- Vijos P1077 克隆龙
- CIA3 Sometimes Naive(莫比乌斯反演+积性函数前缀和)
- hive演示
- HDU 5270 ZYB loves Xor II 异或,贡献,双指针.
- INNER JOIN 数据库查询
- go 压缩文件操作
- Remove Duplicates from Sorted Array
- HDU 4300 Clairewd’s message (方法巧妙)
- ajax 发送post请求
- SparkSQL演示