容斥原理的(二进制思想和质因子分解+模板)hdu4135+ecf81.D
题:http://acm.hdu.edu.cn/showproblem.php?pid=4135
题意:求[A,B]与N互质的数的个数
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
typedef long long ll;
const int M=1e5+;
ll a[M];
ll A,B,N;
int tot;
void init(){
tot=;
ll NN=N;
for(int i=;i*i<=NN;i++){
if(N%i==){
a[tot++]=i;
while(N%i==)
N/=i;
}
}
if(N>)
a[tot++]=N;
}
ll solve(ll x){
ll ans=;
for(ll i=;i<((ll)<<tot);i++){///枚举N的因子相乘子集
ll sum=;
int num=;
for(ll j=;j<tot;j++){
if(i&((ll)<<j))
sum*=a[j],num++;
}
ll tmp=x/sum;
///奇加偶减(容斥原理)
///ans为这些因子相乘能组成的数的个数(小于x)之和
if(num&)
ans+=tmp;
else
ans-=tmp;
}
return x-ans;
}
int main(){
int t;
scanf("%d",&t);
for(int i=;i<=t;i++){
scanf("%lld%lld%lld",&A,&B,&N);
init(); printf("Case #%d: %lld\n",i,solve(B)-solve(A-1ll));
}
return ;
}
ecf:https://codeforces.com/contest/1295/problem/D
思路:https://www.cnblogs.com/heyuhhh/p/12243444.html
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std;
typedef long long ll;
const int M=1e5+;
ll a[M];
ll A,B;
int tot;
void init(ll N){
tot=;
ll NN=N;
for(ll i=;i*i<=NN;i++){
if(N%i==){
a[tot++]=i;
while(N%i==)
N/=i;
}
if(i>N)
break;
}
if(N>)
a[tot++]=N;
}
ll solve(ll x){
ll ans=;
for(ll i=;i<((ll)<<tot);i++){
ll sum=;
int num=;
for(ll j=;j<tot;j++){
if(i&((ll)<<j))
sum*=a[j],num++;
}
ll tmp=x/sum;
if(num&)
ans+=tmp;
else
ans-=tmp;
}
return x-ans;
}
int main(){
int t;
scanf("%d",&t);
while(t--){
scanf("%lld%lld",&A,&B);
ll g=__gcd(A,B);
A/=g;
B/=g;
init(B);
printf("%lld\n",solve(B+A-)-solve(A-));
}
return ;
}
容斥原理的(二进制思想和质因子分解+模板)hdu4135+ecf81.D的更多相关文章
- LightOJ1336 Sigma Function —— 质因子分解、约数和为偶数
题目链接:https://vjudge.net/problem/LightOJ-1336 1336 - Sigma Function PDF (English) Statistics Forum ...
- BZOJ 1485: [HNOI2009]有趣的数列 [Catalan数 质因子分解]
1485: [HNOI2009]有趣的数列 Description 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai}: (2)所 ...
- A 洛谷 P3601 签到题 [欧拉函数 质因子分解]
题目背景 这是一道签到题! 建议做题之前仔细阅读数据范围! 题目描述 我们定义一个函数:qiandao(x)为小于等于x的数中与x不互质的数的个数. 这题作为签到题,给出l和r,要求求. 输入输出格式 ...
- P2043 质因子分解
P2043 质因子分解 题目描述 对N!进行质因子分解. 输入输出格式 输入格式: 输入数据仅有一行包含一个正整数N,N<=10000. 输出格式: 输出数据包含若干行,每行两个正整数p,a,中 ...
- POJ1845:Sumdiv(求因子和+逆元+质因子分解)好题
题目链接:http://poj.org/problem?id=1845 定义: 满足a*k≡1 (mod p)的k值就是a关于p的乘法逆元. 为什么要有乘法逆元呢? 当我们要求(a/b) mod p的 ...
- P2043 质因子分解(阶乘的质因数分解)
P2043 质因子分解 对$n!$进行质因数分解的一种高效算法 首先,筛出$<=n$的素数 蓝后,对$n$反复除以$prime$,同时$cnt+=n/prime$ $n!$中含有该$prime$ ...
- Lightoj-1356 Prime Independence(质因子分解)(Hopcroft-Karp优化的最大匹配)
题意: 找出一个集合中的最大独立集,任意两数字之间不能是素数倍数的关系. 思路: 最大独立集,必然是二分图. 最大数字50w,考虑对每个数质因子分解,然后枚举所有除去一个质因子后的数是否存在,存在则建 ...
- luogu P2043 质因子分解
题目描述 对N!进行质因子分解. 输入输出格式 输入格式: 输入数据仅有一行包含一个正整数N,N<=10000. 输出格式: 输出数据包含若干行,每行两个正整数p,a,中间用一个空格隔开.表示N ...
- LightOJ1138 —— 阶乘末尾0、质因子分解
题目链接:https://vjudge.net/problem/LightOJ-1138 1138 - Trailing Zeroes (III) PDF (English) Statistic ...
随机推荐
- SQL的7种连接查询详细实例讲解
SQL的7种连接查询详细实例讲解 原文链接:https://mp.weixin.qq.com/s/LZ6BoDhorW4cSBhaGy8VUQ 在使用数据库查询语句时,单表的查询有时候不能满足项目的业 ...
- 汇编,寄存器,内存,mov指令
一.代码 和 汇编 和 二进制之间的关系 二.复习一下计算机组成原理的知识 1.寄存器 计算机中有三个存储 32位cpu提供的寄存器有三种类型8位 16位 32位 64位的只是32位的扩展 并且程序大 ...
- 实验吧Web-易-天网管理系统(php弱类型,==号)
打开网页,查看源码,看到 <!-- $test=$_GET['username']; $test=md5($test); if($test=='0') --> 说明用户名需要加密之后为0. ...
- MySQL表连接原理
以下文章均来自掘金小测: https://juejin.im/book/5bffcbc9f265da614b11b731/section/5c061b0cf265da612577e0f4 表连接本质: ...
- Nginx之epoll和select poll
epoll和 select poll 都是做I/O多路复用的. 区别在于: epoll较灵活,如果有一百万个链接状态同时保持,但是在某个时刻,只有几百个链接是活跃的.epoll的处理是通过epoll_ ...
- python数据拼接: pd.concat
1.concat concat函数是在pandas底下的方法,可以将数据根据不同的轴作简单的融合 pd.concat(objs, axis=0, join='outer', join_axes=Non ...
- 改变UILable里面文字的大小和颜色
UILabel *lb = [[UILabel alloc]init]; NSMutableAttributedString *attriStr = [[NSMutableAttributedStri ...
- Codeforces Round #619 (Div. 2)E思维+二维RMQ
题:https://codeforces.com/contest/1301/problem/E 题意:给个n*m的图形,q个询问,每次询问问询问区间最大的合法logo的面积是多少 分析:由于logo是 ...
- STM32F407的Modbus做为主站与从站通讯
在调试STM32F407的串口Modbus通讯之前,也使用过Modbus通讯,只不过都是在PLC或则昆仑通态的触摸屏上使用直接调用现成的库里面的模块,驱动就可以,相对于STM32来,使用PLC库里面的 ...
- Java反射--getDeclaredField()和getField()
Field getField(String name) 返回当前类以及所继承的类的所有public修饰的成员变量 Field getDeclaredField(String name) 返 ...