hdu 1695 两个区间中互素的个数 (容斥)
来源:互联网 发布:ui切图用什么软件 编辑:程序博客网 时间:2024/06/03 14:36
题意是,【1,l】,【1,r】之间个数一个数两个数的最大公约数等于k 求有多少这样的数对。
设x是在【1,l】中取的数,y是在【1,r】中取的数。
x =a*k ,y=b*k ,k为最大公约数, 所以a与b互素,问题转换为区间(1,l/k)(1 , r/k)中有多少互素的数对。
容斥原理在这里求的是 i 在(1,l/k)中与i不互素的个数。例如 1到10中能被2,3整除的个数为 10 / 2+10 / 3 -10 / 6.
#include<cstdio>#include<cstring>#include<iostream>using namespace std;#define ll long longconst int N=100005;ll phi[N];//前n项欧拉函数的和int num[N],p[N][25];//num【i】为i的素因子的个数void get_prime() //p【i】【】表示i的素因子{ phi[1]=1; int i,j; for(i=2;i<N;i++) { if(!phi[i]) { for(j=i;j<N;j+=i) { if(!phi[j]) phi[j]=j; phi[j]=phi[j]/i*(i-1); p[j][num[j]++]=i; } } phi[i]+=phi[i-1]; }}int dfs(int id,int l,int now)//容斥求与l不互素的个数{ int ans=0; for(int i=id;i<num[now];i++) ans+=l/p[now][i]-dfs(i+1,l/p[now][i],now); return ans;}int main(){ get_prime(); int ncase,l,r,k; scanf("%d",&ncase); for(int i=1;i<=ncase;i++) { scanf("%d%d%d%d%d",&l,&l,&r,&r,&k); printf("Case %d: ",i); if(k==0){ puts("0");continue;} if(l>r) swap(l,r); l/=k; r/=k; ll ans=phi[l]; for(int j=l+1;j<=r;j++) ans+=l-dfs(0,l,j); printf("%I64d\n",ans); } return 0;}
- hdu 1695 两个区间中互素的个数 (容斥)
- hdu 1695 hdu 4135 容斥原理求1-n 区间内与r互质的个数
- HDU 4135 Co-prime 区间内与n互质的个数 容斥(入门
- HDU 4135 统计[a,b]这个区间中和n互质的数的个数 (容斥+数组队列) 好题
- hdu 4135 容斥原理 求(1,m)区间与n互质的数的个数.
- 数学 ( 容斥原理&&求区间内互质数的个数)——Co-prime ( HDU 4135 )
- HDU 4135容斥原理求互质的个数
- hdu 4632 Palindrome subsequence (区间DP+容斥)
- hdu 5792 逆序对的个数(离散化&&树状数组&&容斥)
- !HDU 5317 求区间里两个数的质因数个数的gcd的最大值-预处理
- 求指定区间内与n互素的数的个数 容斥原理
- njust1922(容斥原理统计区间内与n互质的个数)
- 区间[A,B]与N互素的元素个数 [容斥][Eratosthenes筛法]
- hdoj 1695 GCD 【容斥原理 + 欧拉函数】 【求两个区间里面的所有不重复质数对】
- hdu 5869 (求区间不同gcd的个数)
- HDU 5869 区间不同GCD的个数
- 容斥原理(有求区间(1-r)里面跟n互质的个数的高效方面模板)
- 经典问题:求区间内与n互素的数的个数(容斥原理)(4135)
- hdu 1875 畅通工程再续
- 红帽下如何增大硬盘容量
- Notification---Notification使用详解之二:可更新进度的通知
- Python起步
- CSS简单的页面布局实例
- hdu 1695 两个区间中互素的个数 (容斥)
- Notification---Notification使用详解之三:通过服务更新进度通知&在Activity中监听服务进度
- 将solr3.5整合到Tomcat6.x中
- 即使是再小的一家公司获得IBM的支持
- UNIX网络编程——原始套接字SOCK_RAW
- HDU 2594Simpsons’ Hidden Talents(KMP运用)
- java多种方式获取根目录
- UVA 10564 Paths through the Hourglass
- UVA1424 Salesmen dp入门题