HDU 4135
2024-08-25 09:34:34
http://acm.hdu.edu.cn/showproblem.php?pid=4135
求[A,B]内与N互素的数字个数
首先对N分解质因数,对于一个质因数,1-n与它不互素的数字个数是n/(这个质因数),这样可以得到m个集合(m是N分解出的质因数的个数),对这m个集合用容斥原理解出来它们的并集,再用总数去减
这里学习了用位运算求解容斥原理,非常简单,和状压dp中的位运算差不多感觉,注意容斥中奇加偶减
#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std; typedef __int64 ll; ll A,B,N; vector <ll> v; ll gao(ll n){
int m=v.size();
ll res=;
for(int i=;i<(<<m);i++){
int cnt=;
ll temp=;
for(int j=;j<m;j++){
if(i&(<<j)){
cnt++;
temp*=v[j];
}
}
if(cnt&)res+=n/temp;
else res-=n/temp;
}
return n-res;
} int main(){
int T;
scanf("%d",&T);
for(int cas=;cas<=T;cas++){
scanf("%I64d%I64d%I64d",&A,&B,&N);
v.clear();
for(ll i=;i*i<=N;i++){
if(N%i==){
v.push_back(i);
while(N%i==)N/=i;
}
}
if(N>)v.push_back(N);
printf("Case #%d: %I64d\n",cas,gao(B)-gao(A-));
}
return ;
}
最新文章
- Css动画总结
- javaweb 拦截器报错
- 修改cms 管理栏目路径
- (Python )控制流语句if、for、while
- android设置系统模式
- VC与JavaScript交互(三) --- CWebPage类调用javascript函数(给js函数传参,并取得返回值)
- XML处理
- [设计模式2]--模板(Template)模式
- 《ENVI下遥感影像自然真彩色合成方法》——TM、spot5
- 51nod贪心算法入门-----活动安排问题
- JAVA继承:编译与运行的关系(编译看左边,运行看右边)
- 自己实现一个each迭代器
- SpringMVC中Controller的方法返回值
- Nginx/LVS/HAProxy 负载均衡软件的优缺点详解
- Android ConstraintLayout 布局警告
- WCF中的ServiceHost初始化两种方式
- classifier in maven
- [POI 2014]RAJ-Rally
- java中重要的多线程工具类
- Python 中的语句
热门文章
- 探究linux文件
- hadoop主节点(NameNode)备份策略以及恢复方法
- struts2视频学习笔记 07-08(为Action的属性注入值,指定需要Struts 2处理的请求后缀,常用常量)
- 百度Tera数据库介绍——类似cassandra,levelDB
- [转]POJO中使用ThreadLocal实现Java嵌套事务
- loadrunner 参数化数据更新方式
- 随机分类器的ROC和Precision-recall曲线
- linux 安装软件,卸载软件 等的几种方式
- iOS 消息推送原理及实现Demo
- 从python中copy与deepcopy的区别看python引用