hdu1695((容斥定理+欧拉函数)或(莫比乌斯反演))
2015-08-19 16:05
260 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1695
容斥定理+欧拉函数:
详解:/article/8652147.html
Yoiu can assume that a = c = 1 in all test cases.(最后这句真的是。。。。。。)
莫比乌斯反演:/article/8623745.html
容斥定理+欧拉函数:
详解:/article/8652147.html
Yoiu can assume that a = c = 1 in all test cases.(最后这句真的是。。。。。。)
#include <stdio.h> #include <string.h> #include <stdio.h> #include <queue> #include <set> #include <stack> using namespace std; #define N 100005 int q ; bool vis ; int f ,phi ; vector<int>vt ; void Eular(){ phi[1]=1; int k,num=0; memset(vis,0,sizeof(vis)); for(int i=2;i<N;i++){ if(!vis[i]){f[num++]=i;phi[i]=i-1;} for(int j=0;j<num&&(k=i*f[j])<N;j++){ vis[k]=true; if(i%f[j]==0){ phi[k]=phi[i]*f[j];break; }else phi[k]=phi[i]*(f[j]-1); }//for_j }//for_i } void init(){ for(int i=2;i<N;i++){ int t=i; for(int j=0;f[j]*f[j]<=i;j++)if(t%f[j]==0){ vt[i].push_back(f[j]); while(t%f[j]==0) t/=f[j]; }//for_j if(t>1) vt[i].push_back(t); }//for_i } long long cal(int n,int s){ int num=0; q[num++]=1; for(int i=0;i<vt[s].size();i++){ int ep=vt[s][i]; if(ep>n) break; int k=num; for(int j=0;j<k;j++) q[num++]=q[j]*ep*(-1); }//for_i long long sum=0; for(int i=0;i<num;i++) sum+=n/q[i]; return sum; } int main(){ int a,b,c,d,k; int T,t=0; Eular(); init(); scanf("%d",&T); while(T--){ t++; scanf("%d%d%d%d%d",&a,&b,&c,&d,&k); if(k==0||k>b||k>d){ printf("Case %d: 0\n",t); continue; }//_if b/=k;d/=k; if(b>d) swap(b,d); long long ans=0; for(int i=1;i<=b;i++) ans+=phi[i]; for(int i=b+1;i<=d;i++) ans+=cal(b,i); printf("Case %d: %lld\n",t,ans); }//while return 0; }
莫比乌斯反演:/article/8623745.html
相关文章推荐
- 数据结构之赫夫曼树的算法介绍和实现
- QT 正则表达式
- zw2012激活方法
- iOS沙盒路径
- 程序员必看的书
- 重建二叉树
- jQuery实现购物车表单自动结算
- Android Studio导入SlidingMenu流程详解及相关问题
- C++之常量与指针
- 2015年8月份浏览器使用比例
- 桌面支持--Auto Cad 2012安装方法
- POJ2942 Knights of the Round Table 点双连通分量,逆图,奇圈
- LeetCode: Ugly Number II
- js搜索框 js仿百度搜索 js下拉框 jQuery.Autocomplete使用
- poj 3414 Pots
- ngx_lua模块学习笔记
- Android Studio中R文件丢失
- java concurrent包自带线程池和队列详细讲解
- 使RemoteFX媒体流在 Windows Server 2012 和 Windows 8无缝的多媒体体验
- ORA-00942: 表或视图不存在 "的原因和解决方法