数论莫比乌斯——bzoj2820YY的GCD
来源:互联网 发布:淘宝店铺装修怎么还原 编辑:程序博客网 时间:2024/05/24 04:02
http://hzwer.com/6142.html
额…….
题解就抄hzwer的把………..
还有,对于公式是怎么推出来的,慢慢推就好了;
然后是下底分段,我竟然字节写出来了;
其实洛谷上对于下底分段我也做过,也是直接做的;
http://blog.csdn.net/largecub233/article/details/65628216
这个也是下底分段
#include<iostream>#include<cstdio>#include<algorithm>#include<map>#define pa pair<int,int>#define Ll long longusing namespace std;const int N=1e7+5;int u[N],pri[N],tot;bool com[N];Ll f[N];int t,n,m;Ll ans;void mobius(){ u[1]=1; for(int i=2;i<=N;i++){ if(!com[i]){pri[++tot]=i;u[i]=-1;} for(int j=1;j<=tot&&pri[j]*i<=N;j++){ com[pri[j]*i]=1; if(i%pri[j])u[pri[j]*i]=-u[i];else { u[pri[j]*i]=0; break; }}}}void make(){ for(int i=1;i<=tot;i++) for(int j=pri[i];j<=N;j+=pri[i])f[j]+=u[j/pri[i]]; for(int i=1;i<=N;i++)f[i]+=f[i-1];}int main(){ mobius(); make(); scanf("%d",&t); while(t--){ scanf("%d%d",&n,&m); if(n>m)swap(n,m); for(int k=1;k<=n;){ int kk=min(n/(n/k),m/(m/k)); ans+=(f[kk]-f[k-1])*(n/k)*(m/k); k=kk+1; } printf("%lld\n",ans);ans=0; }}
1 0
- 数论莫比乌斯——bzoj2820YY的GCD
- bzoj2820YY的GCD;BZOJ2693jzptab
- BZOJ_P2820 YY的GCD(数论+莫比乌斯反演)
- HDU1695 GCD 数论之 莫比乌斯反演
- 【数论-莫比乌斯入门】hdu 1695 GCD
- 【bzoj2820】YY的GCD 线性筛法+莫比乌斯反演+数论分块
- ACdream 1148 GCD SUM(数学:推理+数论:莫比乌斯函数)
- [数论][莫队][莫比乌斯反演] hdu 4676 Sum Of Gcd
- HDU1695——GCD(莫比乌斯反演)
- 数论——GCD
- SPOJ 7001 Visible Lattice Points (数论关于gcd,超经典极力推荐-莫比乌斯反演)
- BZOJ 4176 Lucas的数论 莫比乌斯反演
- 【BZOJ3601】一个人的数论,莫比乌斯反演+高斯消元
- bzoj 4176 Lucas的数论 莫比乌斯反演
- bzoj3601 一个人的数论 莫比乌斯反演+高斯消元
- BZOJ 2820 YY的GCD(莫比乌斯函数)
- ACdream 1148 GCD SUM (久违的莫比乌斯)
- BZOJ 2820 YY的GCD 莫比乌斯反演
- java.net.SocketException: Too many open files问题分析及解决方案
- vs2010编译器的使用
- Maven多模块项目管理小结
- css样式DEMO
- Lecture 9: Ways to make neural networks generalize better 提高神经网络泛化能力的方法
- 数论莫比乌斯——bzoj2820YY的GCD
- Maven实战(九)——打包的技巧
- UML类图介绍及画法
- reset.css
- Maven实战(七、八)——常用Maven插件介绍
- Trafodion 最多支持多少表
- css3中 百分比宽度减去固定宽度的写法
- getMethod和getAnnotation
- 利用sqoop将hive数据导入导出数据到mysql