链接:

hdu 1796 How many integers can you find

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 112;
ll a[maxn],num;
ll GCD(ll x,ll y)
{return x%y==0?y:GCD(y,x%y);
}
ll LCM(ll x,ll y)
{return x*y/GCD(x,y);
}
ll rongchi(ll n)
{ll ans=0;for(ll i=1;i<(1<<num);i++){ll cnt=0,lcm=-1;for(ll j=0;j<num;j++)    {if(i&(1<<j)) {cnt++;if(lcm==-1) lcm=a[j];else lcm=LCM(lcm,a[j]);}}if(lcm==-1) continue;if(cnt&1) ans+=(n-1)/lcm;else ans-=(n-1)/lcm;}return ans;
}
int main()
{ll n,m; while(~scanf("%lld%lld",&n,&m)){ll x;num=0;for(int i=1;i<=m;i++){scanf("%lld",&x);if(x) a[num++]=x; }printf("%lld\n",rongchi(n));}return 0;
}

链接:

hdu 4135 Co-prime

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e3 + 2;
ll a[maxn],num=0;
void getPrime(ll x)
{for(ll i=2;i*i<=x;i++)if(x%i==0){a[num++]=i;while(x%i==0){x/=i;}}if(x!=1) a[num++]=x;
}
ll GCD(ll x,ll y)
{return x%y==0?y:GCD(y,x%y);
}
ll LCM(ll x,ll y)
{return x*y/GCD(x,y);
}
ll rongchi(ll n)
{ll ans=0;for(ll i=1;i<(1<<num);i++){ll cnt=0,lcm=-1;for(ll j=0;j<num;j++)if(i&(1<<j)){cnt++;if(lcm==-1) lcm=a[j];else lcm=LCM(lcm,a[j]);} if(lcm==-1) continue; if(cnt&1) ans+=n/lcm;else ans-=n/lcm;}return n-ans;
}
int main()
{int t,o=0;scanf("%d",&t);while(t--){ll a,b,n;num=0;scanf("%lld%lld%lld",&a,&b,&n);getPrime(n);printf("Case #%d: %lld\n",++o,rongchi(b)-rongchi(a-1));}return 0;
} 

容斥原理(二进制实现)相关推荐

  1. HDU - 1796——容斥原理+二进制枚举

    [题目描述] Now you get a number N, and a M-integers set, you should find out how many integers which are ...

  2. 信息学竞赛中的数学知识 --- 容斥原理

    C++基础数论-----容斥原理 C++基础数论-----容斥原理_C2020lax的博客-CSDN博客_容斥原理c++ C++数论容斥原理----无关的元素 C++数论容斥原理----无关的元素 - ...

  3. 组合数学 —— 容斥定理

    [概述] 容斥原理是一种较常用的计数方法,其基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复. 容斥原理 ...

  4. 容斥原理(二进制枚举)

    在计数时,必须注意无一重复,无一遗漏.为了使重叠部分不被重复计算,人们研究出一种新的计数方法,这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计 ...

  5. 容斥原理的二进制实现模版

    最近学习容斥原理,实现容斥原理大致有三种方法:dfs,队列数组,二进制. 今天主要讲下二进制实现容斥原理: 有一个集合{A1--An},求集合的子集?很显然答案为 也就是2^n个,也就是每一个子集有唯 ...

  6. 容斥原理 —— 求1~n有多少个数与k互质(二进制算法详细解释模板)

    这里有一道经典的例题,可以看一下:点击打开链接 这里的n可能要大于k的,所以不能用欧拉函数去做. 我们首先把k分解质因数,储存到p数组中,num表示质因子的数量. void pr(int k) //求 ...

  7. 【 HDU - 1796】How many integers can you find (容斥原理,二进制枚举或者dfs)

    题干: Now you get a number N, and a M-integers set, you should find out how many integers which are sm ...

  8. 【BZOJ-2669】局部极小值 状压DP + 容斥原理

    2669: [cqoi2012]局部极小值 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 561  Solved: 293 [Submit][Stat ...

  9. UVA - 11806 Cheerleaders(组合数学+容斥原理)

    题目链接:点击查看 题目大意:给出一个n*m的矩阵,现在有k个拉拉队员,要求在第一列.最后一列.第一行和最后一行至少有一个拉拉队员,注意以下要求: 四个角上的拉拉队员可以同时属于两条边 每个方格至多只 ...

最新文章

  1. MarkdownPad2.5 注册码
  2. 各种PID算法的整理和总结
  3. asterisk1.8 for mipsel mysql
  4. springboot-quartz普通任务与可传参任务
  5. mysql 查询关键词顺序
  6. MySpace:.Net架构网站的王者
  7. Java基础-零拷贝技术应用案例
  8. 计算机课怎么管纪律,浅谈如何巧妙设置学生机轻松管理机房课堂纪律
  9. 清理autodesk产品注册表_如何清理卸载Inventor产品
  10. 如何编辑微信文章(微信文章导出word)
  11. 《动手深度学习》4.5 权重衰减Weight Decay
  12. python打开是什么颜色-Python中常见颜色记录
  13. c#MVC文件(图片,word,excel,zip等)批量上传
  14. python try 嵌套_exception:如何在Python中安全地创建嵌套目录?
  15. KDE、Gnome 和 XFCE,各个 Linux 桌面环境的使用情况如何?
  16. 武汉旅游地图(zz)
  17. 基于HCE移动支付研究报告
  18. 重磅 | 深度学习“四大名著”发布!爱可可推荐!
  19. 动规(20)-并查集基础题——打击犯罪
  20. 模拟模拟交易系统(一)——需求分析

热门文章

  1. 根轨迹和系统参数的确定
  2. pydicom 安装与使用
  3. 帝国ECMS教程:上一篇下一篇自定义综合代码
  4. 呼叫系统使用webRTC网页软电话到底好不好?
  5. OCR学习之一:OCR简介
  6. CSDN学院专属推荐--从Python小白走向Python工程师你只需要它!
  7. 《C++》API文档(一)
  8. c语言API用法 查询
  9. 今天14:00 | NeurIPS 专场六 青年科学家专场
  10. 自动化测试运行脚本(python)