hdu 4135 a到b的范围中多少数与n互质(容斥)
Co-prime
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4135
input
The first line on input contains T (0 < T <= 100) the number of test cases,
each of the next T lines contains three integers A, B, N where (1 <= A <= B <= 1015) and (1 <=N <= 109).
题解:先求出n的所有质因数,因为n最大为1e9所以最多10个
利用二进制来模拟是否乘上某个质因数,例如有个n为2*3*5=30
1-x中共有ans个数与其互质 ans=-x/2-x/3-x/5+x/6+x/10+x/15-x/30
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
long long fa[20];
long long factor(long long x)
{
long long num=0;
for(long long i=2;i*i<=x;i++)
{
if(x%i==0)
{
fa[num++]=i;
while(x%i==0)x/=i;
}
}
if(x>1)fa[num++]=x;
return num;
}
long long un(long long x,long long num)
{
long long res=0;
for(long long i=0;i<(1<<num);i++)
{
long long g=1,k=0;
for(long long j=0;j<num;j++)
{
if(i&(1<<j))
g*=fa[j],k++;
}
if(k%2)
res-=x/g;
else
res+=x/g;
}
return res;
}
int main()
{
long long T,n,i=1;
long long a,b,ans;
scanf("%I64d",&T);
while(T--)
{
scanf("%I64d %I64d %I64d",&a,&b,&n);
long long num=factor(n);
ans=un(b,num)-un(a-1,num);
printf("Case #%I64d: ",i++);
printf("%I64d\n",ans);
}
return 0;
}
hdu 4135 a到b的范围中多少数与n互质(容斥)的更多相关文章
- hdu 4336 Card Collector —— Min-Max 容斥
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4336 bzoj 4036 的简单版,Min-Max 容斥即可. 代码如下: #include<cst ...
- hdu 4135 [a,b]中n互质数个数+容斥
http://acm.hdu.edu.cn/showproblem.php?pid=4135 给定一个数n,求某个区间[a,b]内有多少数与这个数互质. 对于一个给定的区间,我们如果能够求出这个区间内 ...
- HDU 4135
http://acm.hdu.edu.cn/showproblem.php?pid=4135 求[A,B]内与N互素的数字个数 首先对N分解质因数,对于一个质因数,1-n与它不互素的数字个数是n/(这 ...
- 容斥 - HDU 4135 Co-prime
Co-prime Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=4135 推荐: 容斥原理 Mean: 给你一个区间[l,r]和一 ...
- 【容斥】HDU 4135 Co-prime
acm.hdu.edu.cn/showproblem.php?pid=4135 [题意] 询问[a,b]中与n互质的数有多少个 [思路] 考虑[1,m]中与n互质的数有多少个,答案就是query(b) ...
- [容斥原理] hdu 4135 Co-prime
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4135 Co-prime Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 4135 容斥
问a,b区间内与n互质个数,a,b<=1e15,n<=1e9 n才1e9考虑分解对因子的组合进行容斥,因为19个最小的不同素数乘积即已大于LL了,枚举状态复杂度不会很高.然后差分就好了. ...
- 【hdu 4135】Co-prime
[题目链接]:http://acm.hdu.edu.cn/showproblem.php?pid=4135 [题意] 让你求出[a..b]这个区间内和N互质的数的个数; [题解] 利用前缀和,求出[1 ...
- HDU 4135 Co-prime(容斥原理)
Co-prime 第一发容斥,感觉挺有意思的 →_→ [题目链接]Co-prime [题目类型]容斥 &题意: 求(a,b)区间内,与n互质的数的个数. \(a,b\leq 10^{15}\) ...
随机推荐
- 确认是否是因为做了物理I/O而导致的性能不佳
要获取语句是否进行了I/O,需要打开set statistics on 和set statistics on.
- android 休眠唤醒机制分析(一) — wake_lock【转】
Android的休眠唤醒主要基于wake_lock机制,只要系统中存在任一有效的wake_lock,系统就不能进入深度休眠,但可以进行设备的浅度休眠操作.wake_lock一般在关闭lcd.tp但系统 ...
- Windows和Linux之间 rsync数据同步
转载于 https://www.linuxidc.com/Linux/2014-01/95722p2.htm rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——rem ...
- 用惯图形界面的SVNer,如何突破Git----简单教程
1.使用Git,首先安装好Git,它会赠送一个Git Bash给你 2.接下来,踩第一个坑----SSH连接,我们知道用Git关联本地仓库可以用SSH和HTTP两种方式,为什么不用HTTP,因为 不! ...
- Spring 的application.properties项目配置与注解
一.项目结构介绍 如上图所示,Spring Boot的基础结构共三个文件: src/main/java 程序开发以及主程序入口 src/main/resources 配置文件 src/test/ja ...
- 前端性能优化成神之路--vue组件懒加载(Vue Lazy Component )
---恢复内容开始--- 使用组件懒加载的原因 我们先来看看这样的一个页面,页面由大量模块组成,所有模块是同时进行加载,模块中图片内容较多,每个模块的依赖资源较多(包括js文件.接口文件.css文件等 ...
- 「2017 山东一轮集训 Day5」苹果树
「2017 山东一轮集训 Day5」苹果树 \(n\leq 40\) 折半搜索+矩阵树定理. 没有想到折半搜索. 首先我们先枚举\(k\)个好点,我们让它们一定没有用的.要满足这个条件就要使它只能和坏 ...
- Zend:PHP框架结束的开始?
Zend:PHP框架结束的开始? 随着Zeev Suraski, Matthew Weier O'Phinney, Enrico Zimuel and Dmitry Stogov 这些PHP核心小组的 ...
- 如何在python中把两个列表的各项分别合并为列表
[ [a,b] for a,b in zip(list1,list2)] 生成一个以列表list1,list2各项合并列表为元素的列表
- php 10进制转62进制,可用于短网址生成
<?php /** * 十进制数转换成62进制 * * @param integer $num * @return string */ function from10_to62($num) { ...