博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU - 1796 How many integers can you find (容斥原理)
阅读量:5061 次
发布时间:2019-06-12

本文共 602 字,大约阅读时间需要 2 分钟。

题意:求[1,N-1]中有多少能被集合M中的任意一个数整除。

分析:运用容斥原理解决。二进制枚举N-1中能被1个,2个...M个数整除的个数,奇加偶减。

每次N-1除以若干个数的lcm得到区间[1,N-1]中能被这若干个数整除的个数。

注意M中有可能出现0,0是不能整除任何数的,跳过即可。

#include
using namespace std;typedef long long LL;LL gcd(LL a,LL b){ if(b==0) return a; return gcd(b,a%b);}LL lcm(LL a,LL b){ return a/gcd(a,b)*b;}LL vz[20];int main(){ #ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); #endif LL N,M; while(scanf("%lld %lld",&N,&M)==2){ N--; int tot=0; for(int i=0;i

 

转载于:https://www.cnblogs.com/xiuwenli/p/9504125.html

你可能感兴趣的文章
MySQL数据库入门笔记
查看>>
大道至简读后感(第六章)
查看>>
[重要更新][Quartus II][14.1正式版]
查看>>
kubeadm安装Kubernetes13.1集群-三
查看>>
整数数组中子数组的最大值
查看>>
通过其轴标签沿 X 轴对齐不同系列中的数据点
查看>>
2019/1/9 6系列所有装置编号与SIM卡信息抓取
查看>>
Git的远程仓库
查看>>
621. Task Scheduler && 358. Rearrange String k Distance Apart
查看>>
数据加密:Stunnel
查看>>
加密解密-C#
查看>>
数据库ACID和mvcc
查看>>
c++11 std::map 通过值查找键
查看>>
Oracle Silent Install 静默安装
查看>>
java实现图像灰度化
查看>>
CI分页类使用入门
查看>>
CS 231n 学习笔记 02——课程2.2 Linear Classification
查看>>
Lucene4.6至 Lucene6.6的每个迭代对API的改动
查看>>
2015 CALLED THE INTERFACE OF 2014
查看>>
flex布局学习笔记
查看>>