hdu2841(容斥原理+分解质因数)Visible Trees
来源:互联网 发布:女士手套品牌 知乎 编辑:程序博客网 时间:2024/05/16 01:39
/*题目大意:在一个n*m的方格中一个人站在(0,0),每个方格都有树,求他能看到多少颗树设某点的坐标为(x,y),则求的是x/y的不同数目,那么问题就转换成了求两个区间内的互质的对数如果可以约分,那么他们约分后的互质在前面已经计算过了 */ //求区间[a,b]与[a,b]互质数多少对 #include<cstdio>#include<iostream>#include<vector>#define ll long longusing namespace std;const int mx=100005;int n,a,b;vector<int> x[mx];int vis[mx];void prime(){//预处理1~mx内的数的素因子 for(int i=2;i<mx;++i)if(!vis[i]){for(int j=i;j<mx;j+=i){vis[j]=1;x[j].push_back(i);}}}int solve(int a,int p){//求区间[1,a]与p互质的数的个数int ans=a;for(int i=1;i<(1<<x[p].size());++i){int cnt=0,k=1;for(int j=0;j<x[p].size();++j)if(i&(1<<j)) k*=x[p][j],++cnt;if(cnt&1) ans-=a/k;else ans+=a/k;}return ans;}int main(){prime();scanf("%d",&n);while(n--){scanf("%d%d",&a,&b);ll ans=a;//1不满足容斥原理 for(int i=2;i<=b;++i){ans+=solve(a,i);}printf("%lld\n",ans);}return 0;}
阅读全文
1 0
- hdu2841(容斥原理+分解质因数)Visible Trees
- HDU2841 Visible Trees (容斥原理)
- HDU2841 Visible Trees【容斥原理】
- hdu2841 Visible Trees(容斥原理)
- 【容斥原理】HDU2841 Visible Trees
- hdu2841 Visible Trees(容斥原理)
- hdu2841 Visible Trees(容斥)
- hdu 2841 Visible Trees 容斥,分解质因数
- Visible Trees HDU2841(容斥定理的简单扩展)
- HDU 2841 Visible Trees (素因子分解,容斥原理)
- hdu2841(容斥原理)
- Hdu2841 Visible Trees
- Hdu 2841 Visible Trees 容斥原理
- hdu 2841 Visible Trees(容斥原理)
- HDU 2841 - Visible Trees (容斥原理)
- hdu 2841 Visible Trees【容斥原理】
- hdu 2841 Visible Trees (容斥原理)
- hdoj 2841 Visible Trees 【容斥原理】
- 7.24 本周计划
- Python 3.6学习笔记(一)
- Android 动态申请权限(AndPermission)
- JQuery 插件与扩展方法的范例
- GitLab 之 Git LFS 大文件存储的配置
- hdu2841(容斥原理+分解质因数)Visible Trees
- spring mvc 接收data值报400
- vm虚拟机上安装了oracle,更改了虚拟机的网络连接类型之后oracle连不上了
- linux安装配置java环境
- 3. TVTK的管线
- 【Java笔记】static和final关键字的初级理解应用
- MVC数据验证
- ToolBar距离左边界留白解决方案
- Python中MD5加密字符串