【51NOD 1192】Gcd表中的质数
来源:互联网 发布:智能电视遥控器软件 编辑:程序博客网 时间:2024/06/08 11:19
Description
求
数据组数
Solution
很裸的一道莫比乌斯反演题,
先保证
设
则:
设
则:
根据反演:
所以枚举每个的质数作为d即可,然而有T组数据,还过不了,
考虑一下每个f对答案的贡献,
设
因为d为质数,
所以,设
这样做可以过,
优化:
因为
所以只有当组成i的所有质数的指数都为1时
或者组成i中的所有质数的指数只有一个为2时,
因为要用分块,所以把sum做一下前缀和,
复杂度:
Code
#include <iostream>#include <cstdio>#include <cstdlib>#define fo(i,a,b) for(int i=a;i<=b;i++)using namespace std;typedef long long LL;const int N=5*1e6+10;int read(int &n){ char ch=' ';int q=0,w=1; for(;(ch!='-')&&((ch<'0')||(ch>'9'));ch=getchar()); if(ch=='-')w=-1,ch=getchar(); for(;ch>='0' && ch<='9';ch=getchar())q=q*10+ch-48;n=q*w;return n;}LL n,m;bool prz[N];int pr[N/5];LL ans,mu[N];int hm[N],ssg[N];bool ssg1[N];LL sum[N];int main(){ int q,w; prz[1]=mu[1]=1; fo(i,2,N-1) { if(!prz[i])pr[++pr[0]]=i,mu[i]=-1,hm[i]=ssg[i]=1; fo(j,1,pr[0]) { int t=pr[j]*i; if(t>=N)break; prz[t]=1; if(i%pr[j]==0) { ssg[t]=ssg[i]+1; ssg1[t]=ssg1[i]; break; } mu[t]=-mu[i]; ssg[t]=ssg[i];ssg1[t]=!ssg1[i]; hm[t]=hm[i]+hm[pr[j]]; } } fo(i,2,N-1)sum[i]+=-hm[i]*mu[i]+(ssg1[i]?1:-1)*(ssg[i]==2)+sum[i-1]; for(int _=read(_);_;_--) { scanf("%lld%lld",&n,&m); if(n>m)swap(n,m); ans=0; int i=2; while(i<=n) { int q=min(n/(n/i),m/(m/i)); ans+=(m/i)*(n/i)*(sum[q]-sum[i-1]); i=q+1; } printf("%lld\n",ans); } return 0;}
0 0
- 51nod 1192 Gcd表中的质数
- 【51NOD 1192】Gcd表中的质数
- 51Nod-1192-Gcd表中的质数
- Gcd表中的质数 51Nod
- 51nod 1192 Gcd表中的质数 莫比乌斯反演
- 51nod 1192GCD表中的质数(莫比乌斯反演+双分块)
- 51 nod 质数中的质数
- [51nod1192]gcd表中的质数
- 51nod 1181 质数中的质数
- 51Nod 1181-质数中的质数(质数筛法)
- 51nod 1181 质数中的质数(质数筛法)
- 51nod 1181 质数中的质数(质数筛法)
- 51 nod 1181 质数中的质数(质数筛法)
- 51nod--1181 质数中的质数(质数筛法)
- 51NOD 1181质数中的质数(质数筛法)
- 51nod 1181 质数中的质数(质数筛法)
- 51nod-【1181 质数中的质数(质数筛法)】
- 51nod 1181 质数中的质数(质数筛法)
- 我也是做SEO的
- 面向对象的编程思维
- [Android实例] app引导页(背景图片切换加各个页面动画效果)(申明:来源于网络)
- Android studio环境不能正常运行的解决方法
- java对象深层复制和浅复制
- 【51NOD 1192】Gcd表中的质数
- spring中IOC底层详解
- python 2 和python 3共存解决方法(virtualenv)
- ubuntu16.04安装jdk1.8
- 第十五周 OJ 将字符串格式化后输出
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- ZooKeeper分布式锁:参考了几篇文章,总结一下
- 实现一个选择排序程序,排序整型数组。
- php 服务器端解决json_decode()的bug 输出为null, json_last_error函数为4语法错误