欧拉函数&&容斥原理
2015-03-27 17:22
232 查看
题意:给你五个数 a,b,c,d,在[a,b]闭区间找一个数x,再在[c,d]闭区间中找一个数y,使得(x,y)的最大公约数是k。请找出所有满足条件的不同(x,y)的对数。
1:因为我们知道gcd(x/k,y/k)=1,重新定义两个区间[1,int(b/k]和[1,int(d/k)];
2:找两个区间相互互质的就行了,假设b‘<d’,对于公共区间[1,b']可以通过欧拉函数累加和求出所有互质的。
3:对于[b'+1,d']则需要用容斥原理,从该区间任取x,则需要李勇容斥原理求[1,b']里面有多少个和x不互质,再用b'来减
1:因为我们知道gcd(x/k,y/k)=1,重新定义两个区间[1,int(b/k]和[1,int(d/k)];
2:找两个区间相互互质的就行了,假设b‘<d’,对于公共区间[1,b']可以通过欧拉函数累加和求出所有互质的。
3:对于[b'+1,d']则需要用容斥原理,从该区间任取x,则需要李勇容斥原理求[1,b']里面有多少个和x不互质,再用b'来减
#include<iostream> #include<cstdio> using namespace std; const int limit=100000; struct Num{ int count; int prime[16]; }N[limit+1]; __int64 elur[limit+1]; void ELUR() { elur[1]=1; for(int i=0;i<=limit;i++) N[i].count=0; for(int i=2;i<=limit;i++) { if(!elur[i]) { for(int j=i;j<=limit;j+=i) { if(!elur[j]) elur[j]=j; elur[j]=elur[j]*(i-1)/i; N[j].prime[N[j].count]=i; N[j].count++; } } elur[i]+=elur[i-1]; } } __int64 Inclusion_exclusion(int index,int b,int n) { __int64 r=0,t; for(int i=index;i<N .count;i++) { t=b/N .prime[i]; r+=t-Inclusion_exclusion(i+1,t,n); } return r; } int main() { int t,a,b,c,d,num=0,k; __int64 ans; ELUR(); scanf("%d",&t); while(t--) { num++; scanf("%d%d%d%d%d",&a,&b,&c,&d,&k); if(k==0) { printf("Case %d: 0\n",num); continue; } if(b>d) { b^=d; d^=b; b^=d; } b=b/k; //gcd(x/k,y/k)==1 d=d/k; ans=elur[b]; for(int i=b+1;i<=d;i++) { ans+=b-Inclusion_exclusion(0,b,i); } printf("Case %d: %I64d\n",num,ans); } return 0; }
相关文章推荐
- HYSBZ-2190(欧拉函数)&&hdu-2814(容斥原理)
- Calculation 2(容斥原理 && 欧拉函数)
- 容斥原理 && 欧拉函数 && 抽屉原理
- 容斥原理 && 欧拉函数 && 抽屉原理 总结
- 【HDU】1695 - GCD(欧拉函数 & 容斥原理)
- 2017-07-07:欧拉函数&&容斥原理
- poj 3090 && poj 2478(法雷级数,欧拉函数)
- hdu GCD 【欧拉函数,素因子分解,筛选法,容斥原理】
- 【HDU】6053 - TrickGCD(容斥原理 & 筛数 & 好题)
- 数论的欧拉定理证明 &amp; 欧拉函数公式
- Poj 2888 & Hoj 2722 Magic Bracelet (有限制的Burnside 矩阵性质 欧拉函数)
- hdu 1695 欧拉函数 + 容斥原理
- POJ 2407 Relatives && UVA 10299 Relatives(欧拉函数)
- poj 3090 && poj 2478(法雷级数,欧拉函数)
- 【题】【逆序对&容斥原理】NKOJ 3722 叮叮猫
- POJ1284 Primitive Roots (欧拉函数 & 原根)
- hdu1695 综合数论 欧拉函数 分解质因子 容斥原理 打印素数表 各种模板
- 欧拉筛法 && 欧拉函数
- 数论的欧拉定理证明 &amp;amp; 欧拉函数公式
- [BZOJ 2190] SDOI 2008 仪仗队 · 欧拉函数