HDU 1695 GCD(phi函数+容斥)
来源:互联网 发布:淘宝信誉查询 淘一兔 编辑:程序博客网 时间:2024/05/19 08:03
Priblem Link
GCD
找出满足
Analyse
要找到满足
对于
AC code
#include <iostream>#include<cstdio>#include<cstring>#include<algorithm>#define Debug(x) cout<<(x)<<endlusing namespace std;const int MAXN = 1e5+10;typedef long long LL;int prime[MAXN];int factor[MAXN];LL euler[MAXN];int primecnt;void getprime(){ primecnt=0; memset(prime,0,sizeof(prime)); for(int i=2;i<MAXN;i++){ if(!prime[i]) prime[primecnt++]=i; for(int j=0;j<primecnt && prime[j]<=MAXN/i;j++){ prime[prime[j]*i]=1; if(i%prime[j] == 0) break; } }}//求因子个数int getfactor(int n){ int factorcnt = 0; for(int i=0 ; i<primecnt && prime[i] <= n/prime[i] ; ++i) { if(n%prime[i]==0) { factor[factorcnt++] = prime[i]; while(n % prime[i] == 0)n /= prime[i]; } } if(n>1)factor[factorcnt++] = n; return factorcnt;}//与i互素的个数int uncoprime(int n,int x){ int factorcnt = getfactor(x); // Debug(factorcnt); int ans = 0; for(int i = 1 ; i<(1<<factorcnt) ; ++i) { int cnt = 0,res = 1; for(int j = 0 ; j<factorcnt ; ++j) { if(i & (1<<j)){ res*=factor[j]; cnt++; } } if(cnt & 1)ans+=n/res; else ans-=n/res; } //Debug(ans); return ans;}void phi_table(int n = MAXN){ memset(euler,0,sizeof(euler)); euler[1] = 1; for(int i=2 ; i<MAXN ; ++i) { if(!euler[i]) { for(int j = i ; j<MAXN ; j+=i) { if(!euler[j])euler[j] = j; euler[j] = euler[j]/i*(i-1); } } euler[i]+=euler[i-1]; }}int main(){ //freopen("H:\\c++\\file\\stdin.txt","r",stdin); int kase = 0; int a,b,c,d,k; int T;scanf("%d",&T); getprime(); phi_table(); while(T--) { scanf("%d%d%d%d%d",&a,&b,&c,&d,&k); if(k>b|k>d || k ==0){ printf("Case %d: %d\n",++kase,0);continue; } b/=k;d/=k; if(b>d)swap(b,d); LL ans = euler[b]; for(int i= b+1 ; i<=d ; ++i) { ans = ans+b-uncoprime(b,i); } printf("Case %d: ",++kase); cout<<ans<<endl; } return 0;}
0 0
- HDU 1695 GCD(phi函数+容斥)
- hdu 1695 GCD(容斥原理+欧拉phi函数)
- HDOJ 1695 GCD phi函数+容斥原理
- hdu-1695 GCD(容斥原理+欧拉函数)
- hdu 1695 GCD (欧拉函数、容斥原理)
- HDU 1695 GCD(欧拉函数+容斥原理)
- HDU 1695 GCD(欧拉函数+容斥原理)
- HDU 1695 GCD (欧拉函数+容斥原理)
- HDU 1695 GCD(容斥原理 + 欧拉函数)
- 【HDU】1695 - GCD(欧拉函数 & 容斥原理)
- HDU 1695-GCD(容斥原理+欧拉函数)
- HDU - 1695 GCD(欧拉函数+容斥原理)
- HDU-1695 GCD(容斥定理+欧拉函数)
- hdu 1695 GCD(容斥定理)
- HDU 1695 GCD(容斥+组合)
- HDU 1695 GCD(容斥定理)
- HDU 1695 GCD (容斥原理)
- hdu 1695 GCD(容斥原理)
- 专业英语(阅读理解)
- Codeforces Round #381 (Div. 2) D. Alyona and a tree dfs+二分+线段树延迟操作、树形化线性
- scanf、getchar和gets的区别
- Ajax+SpringMVC+Spring+Mybatis+MySql+js用户注册实例
- read the pragmatic programmer -- chapter5
- HDU 1695 GCD(phi函数+容斥)
- 状态栏编程实例
- SYN Flood 攻击及防御方法
- maven + spring mvc 创建Java web项目
- leetcode 414. Third Maximum Number 解法讨论
- Android应用连接服务器代码
- NOIP2016提高组day1试题 玩具谜题
- Linux系统性能分析——网络
- Mybatis自动生成代码