容斥原理的(二进制思想和质因子分解+模板)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 ...
随机推荐
- spark on yarn 安装笔记
yarn版本:hadoop2.7.0 spark版本:spark1.4.0 0.前期环境准备: jdk 1.8.0_45 hadoop2.7.0 Apache Maven 3.3.3 1.编译spar ...
- js连续的日期判断,判断相差几天
var startTime=Date.parse(new Date('2020-02-28')); var endTime=Date.parse(new Date('2020-02-29')); $. ...
- Python安装和虚拟环境创建以及外部库的安装
Python.虚拟环境.外部库的安装 一 安装Python 1 Windows 到官网下载对应的版本 下载地址 我选择的是Python3.6.8 下载完成后双击运行 !!!勾选Add Python 3 ...
- 浅谈$NTT$
\(NTT\),快速数论变换,可以理解为带模数的FFT. 原根 & 阶 先来补一点数论.(这里讲的应该很少,都是针对\(ntt\)胡的,具体的话可以去看<初等数论>那本小黄书). ...
- Adaboost的python实现
不要总是掉包欧,真的丢人啊,一起码起来! '''函数的功能:单层决策树分类函数参数说明: xMat:数据矩阵 i:第i列,第几个特征 Q:阈值返回分类结果: re'''import numpy as ...
- c 转二进制
int nData = 1568;//转二进制 for (int i = sizeof(int) * 8 - 1; i >= 0; i--){ if ((nData >>i) &am ...
- ARDUINO+MCP2515实现CAN通讯接收
我的学习过程有几个关键点: 1.MCP2515 CAN总线模块与ARDUINO UNO R3的接线方式: 2.程序set_mask_filter_recv的参数设置,mcp_can_dfs.h库文件设 ...
- Qt creator中配置opencv win7 64bit
配置方法的原文来自https://www.librehat.com/qt-5-2-vs2012-opencv-2-4-7-dev-environment-setup-tutorial/. 补充,在张静 ...
- java笔记5
1. JUnit 单元测试:方法名任意,但是没有参数列表. 注解: @Test @Ignore @Before @After 2. 泛型 1. 在集合中使用泛型 2. 在通用性较高的代码中使用泛型 1 ...
- 移动端— Touch事件轮播图
虽然 以前也写过手机端页面 .当时用的jquery moblie 框架.啥也不懂 就知道复制粘贴出效果 不敢改内部样式.现在呢 了解手机端原理 一些基本的概念 视口 缩放 后 .再去想以前写的页面 ...