容斥原理的(二进制思想和质因子分解+模板)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 ...
随机推荐
- 关于SI522替代FM17522和MFRC522的资料对比
以下是SI522与FM17522.MFRC522的对比参数: SI522是完全PIN对PIN软硬件兼容MFRC522.CV520.FM17522,另外我们可提供一对一技术支持解决客户所遇到的问题: 1 ...
- PHP二维数组--去除指定列含有重复项的数组
给定二维数组: $arr = array( '0' => array('张三',2,3,4), '1' => array('李四',2,3,4), '2' => array('张三' ...
- JS高级学习笔记(6)- 事件循环
参考文章:深入理解JS引擎的执行机制 JavaScript 异步.栈.事件循环.任务队列 我的笔记:ES系列之Promise async 和 await Event Loop 前提 js ...
- Jenkins-在CentOS7 上安装配置
Jenkins-在CentOS7 上安装配置 1.安装JDK yum install -y java 2.安装jenkins 方法1:添加Jenkins库到yum库,Jenkins将从这里下载安装. ...
- CodeForces - 748B Santa Claus and Keyboard Check
题意:给定两个字符串a和b,问有多少种不同的字母组合对,使得将这些字母对替换字符串b后,可以变成字符串a.注意字母对彼此各不相同. 分析:vis[u]记录与u可形成关系的字母,若u与v不同,则形成字母 ...
- Tensorflow学习教程------softmax简单介绍
做机器学习的同志们应该对这个都不陌生,这里简单举个例子.一般来说,使用softmax函数来将神经元输出的数值映射到0到1之间,这样神经元输出的值就变为了一个概率值. 公式和例子如下图 公式和例子如下图
- GPU 、APU、CUDA、TPU、FPGA介绍
购买显卡主要关注:显存.带宽和浮点运算数量 GPU :图形处理器(英语:Graphics Processing Unit,缩写:GPU),又称显示核心.视觉处理器.显示芯片,是一种专门在个人电脑. ...
- 19 01 13 JQery 加载 选择器 样式操作
在Javascript 中应该用下方法经行编辑 <script type="text/javascript" src="js/jquery-1.12.4.min ...
- react 16 性能提升 总结
1. 减少子组件渲染 当 父组件 state 内的某个值(eg:value) 不变时 子组件菜 render shouldComponentUpdate(nextProps, nextState){ ...
- mysql 去除重复 Select中DISTINCT关键字的用法(查询两列,只去掉重复的一列)
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的 ...