【容斥】HDU 4135 Co-prime
acm.hdu.edu.cn/showproblem.php?pid=4135
【题意】
- 询问[a,b]中与n互质的数有多少个
【思路】
- 考虑[1,m]中与n互质的数有多少个,答案就是query(b)-query(a-1)
- 正难则反,考虑[1,m]中与n不互质的数有多少个
- 求出n的所有素因子a1,a2,a3
- 容斥:+m/a1+m/a2+m/a3-m/(a1*a2)-m/(a1*a3)-m/(a2*a3)+m/(a1*a2*a3)
【AC】
#include<bits/stdc++.h>
using namespace std;
typedef long long ll; ll a,b,n;
const int maxn=1e5+;
ll fac[maxn];
int cnt;
void factor(ll n)
{
cnt=;
for(int i=;i<maxn;i++)
{
if(n%i==)
{
fac[cnt++]=i;
}
while(n%i==)
{
n/=i;
}
}
if(n>) fac[cnt++]=n;
}
ll solve(ll x)
{
ll que[maxn],k,t=;
que[t++]=-;
for(int i=;i<cnt;i++)
{
k=t;
for(int j=;j<k;j++)
{
que[t++]=que[j]*fac[i]*(-);
}
}
ll ans=;
for(int i=;i<t;i++)
{
ans+=x/que[i];
}
return ans;
}
ll query(ll x)
{
return x-solve(x);
}
int main()
{
int T;
scanf("%d",&T);
int cas=;
while(T--)
{
scanf("%I64d%I64d%I64d",&a,&b,&n);
factor(n);
ll ans=query(b)-query(a-);
printf("Case #%d: %I64d\n",++cas,ans);
}
return ;
}
容斥
【容斥】HDU 4135 Co-prime的更多相关文章
- 容斥 - HDU 4135 Co-prime
Co-prime Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=4135 推荐: 容斥原理 Mean: 给你一个区间[l,r]和一 ...
- min-max容斥 hdu 4336 && [BZOJ4036] 按位或
题解: 之前听说过这个东西但没有学 令$max(S)$表示S中编号最大的元素,$min(S)$表示编号中最小的元素 $$max(S)=\sum{T \in S} {(-1)}^{|T|+1} min( ...
- 数论 + 容斥 - HDU 4059 The Boss on Mars
The Boss on Mars Problem's Link Mean: 给定一个整数n,求1~n中所有与n互质的数的四次方的和.(1<=n<=1e8) analyse: 看似简单,倘若 ...
- 数论 + 容斥 - HDU 1695 GCD
problem's Link mean 给定五个数a,b,c,d,k,从1~a中选一个数x,1~b中选一个数y,使得gcd(x,y)=k. 求满足条件的pair(x,y)数. analyse 由于b, ...
- HDU 4135 容斥
问a,b区间内与n互质个数,a,b<=1e15,n<=1e9 n才1e9考虑分解对因子的组合进行容斥,因为19个最小的不同素数乘积即已大于LL了,枚举状态复杂度不会很高.然后差分就好了. ...
- hdu 4135 [a,b]中n互质数个数+容斥
http://acm.hdu.edu.cn/showproblem.php?pid=4135 给定一个数n,求某个区间[a,b]内有多少数与这个数互质. 对于一个给定的区间,我们如果能够求出这个区间内 ...
- HDU 4135 Co-prime(容斥+数论)
Co-prime Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- HDU 4135:Co-prime(容斥+二进制拆分)
Co-prime Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total S ...
- HDU 4135 Co-prime 欧拉+容斥定理
Co-prime Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
随机推荐
- EJB开发基础——EJB规范
1.EJB 容器 Enterprise Bean 是在称作 EJB 容器的特殊环境中运行的软件组件.容器容纳和管理 Enterprise Bean 的方式与 Java Web 服务器 ...
- codevs 爱改名的小融
都是三道水题 但我很难理解的是 string 能过 char 就WA 2967 题目描述 Description Wikioi上有个人叫小融,他喜欢改名. 他的名字都是英文,只要按顺序出现R,K,Y三 ...
- 如何找到SAP Cloud for Customer标准培训和认证方面的信息
有一些朋友询问我如何在SAP官网上找到和SAP Cloud for Customer相关的标准培训信息,我这里把步骤写出来: 登录SAP官网https://training.sap.com 输入和Cl ...
- JSON数组不用字符串转换的写法
var organization = []; //机构组织 //初始化用户数据列表中用户机构列的数据源 admin.ajax("GetOrganizationInfo", null ...
- jQuery中ready方法的实现
https://blog.csdn.net/major_zhang/article/details/80146674 先普及一下jquery.ready()和window.onload,window. ...
- Bootstrap 基本按钮
本章将通过实例讲解如何使用Bootstrap按钮,任何带有class.btn的元素都会继承圆角灰色默认按钮样式,但Bootstrap提供了一些选项来定义按钮的样式. 实例 <!DOCTYPE h ...
- html5/css3响应式页面开发总结
一,自适应和响应式的区别 自适应是一套模板适应所有终端,但每种设备上看到的版式是一样的,俗称宽度自适应. 响应式一套模板适应所有终端,但每种设备看到的版式可以是不一样的. 虽然响应式/自适应网页设计会 ...
- [LUOGU] P2716 和谐的雪花
https://www.luogu.org/problemnew/show/P2716 给出一个n*m的矩形,求里面边长最小的正方形,使得该正方形内最大值与最小值的差大于等于给定的K. 第一反应是二分 ...
- python mysql备份脚本
#!/usr/bin/env python # encoding: utf-8 #@author: 东哥加油! #@file: pyinnobackup.py #@time: 2018/12/11 1 ...
- python爬虫(爬取视频)
爬虫爬视频 爬取步骤 第一步:获取视频所在的网页 第二步:F12中找到视频真正所在的链接 第三步:获取链接并转换成机械语言 第四部:保存 保存步骤代码 import re import request ...