题目描述

给出m个数a[1],a[2],…,a[m]

求1~n中有多少数不是a[1],a[2],…,a[m]的倍数。

输入输出格式

输入格式:

输入文件名为count.in。

第一行,包含两个整数:n,m

第二行,包含m个数,表示a[1],a[2],…,a[m]

输出格式:

输入输出样例

输入样例#1:

count.in	count.out
10 2
2 3 3
输出样例#1:

输出一行,包含1个整数,表示答案

说明

对于60%的数据,1<=n<=106

对于另外20%的数据,m=2

对于100%的数据,1<=n<=109,0<=m<=20,1<=a[i]<=109

补几发题解

容斥,奇数个数的|lcm|减去,偶数个的加上

#include<cstdio>
using namespace std;
#define LL long long
int a[];
int n,m;
int gcd(int x,int y) {
if(y==)return x;
else return gcd(y,x%y);
}
LL ans=;
void dfs(int num,int step,LL lcm) {
if(lcm>n)return ;
if(num==m+){
if(step%==)ans-=n/lcm;//奇数个时加上
else if(step)ans+=n/lcm;//偶数个时减去
return ;
}
dfs(num+,step,lcm);
LL tmp=lcm*a[num]/gcd(lcm,a[num]);//选择该数
dfs(num+,step+,tmp);
}
int main () {
scanf("%d%d",&n,&m);
ans=n;
for(int i=;i<=m;++i ) {
scanf("%d",a+i);
}
dfs(,,);
printf("%lld\n",ans);
return ;
}

最新文章

  1. spring boot(五):spring data jpa的使用
  2. cf Round 607
  3. AC自动机
  4. ios线程和GCD
  5. XListView理念
  6. MySQL 安装 启动命令总结
  7. jQuery与DOM相互转换
  8. C# winform 渐变效果
  9. Unity3D 之2D动画机
  10. Python文件之----CSV
  11. Mysql数据库中的EXISTS和NOT EXISTS
  12. 建造者模式-&gt;代码示例
  13. uva 699
  14. Dom+2016/4/20
  15. javascript DOM 笔记
  16. 保留键的情况下取字典中最大的值(max\zip函数的联合使用)
  17. 线程 学习教程(一): Java中终止(销毁)线程的方法
  18. Java生成静态HTML文件
  19. 搜藏一个php文件上传类
  20. How to Conduct High-Impact Research and Produce High-Quality Papers

热门文章

  1. Noip2011提高组 聪明的质监员
  2. xampp中php手动升级
  3. mac拷贝原版和权限修复的命令行工具
  4. log4j日志输出到文件的配置
  5. python--初识html前端
  6. opencv中相关的矩阵运算
  7. Yii2.0 添加分类category model类
  8. 2.ruby基本语法,类的定义
  9. 暑假训练Round1——G: Hkhv的水题之二(字符串的最小表示)
  10. [BZOJ1572] [Usaco2009 Open]工作安排Job(贪心 + 堆)