HDU 1796 How many integers can you find(容斥原理)
2024-08-26 01:20:41
题意
就是给出一个整数n,一个具有m个元素的数组,求出1-n中有多少个数至少能整除m数组中的一个数
(1<=n<=10^18.m<=20)
题解
这题是容斥原理基本模型。
枚举n中有多少m中元素的个数,在结合LCM考虑容斥。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const long long N=;
long long a[N],n,m,ans;
long long gcd(long long x,long long y){
if(y==)return x;
else return gcd(y,x%y);
}
long long lcm(long long x,long long y){
return x/gcd(x,y)*y;
}
void dfs(long long now,long long num,long long res,long long k){
if(res==){
if(num==)return;
long long tmp=n/num;
if(k&)ans+=tmp;
else ans-=tmp;
return;
}
if(now==m+)return ;
if(lcm(num,a[now])<=n)dfs(now+,lcm(num,a[now]),res-,k);
dfs(now+,num,res,k);
}
int main(){
while(scanf("%lld%lld",&n,&m)!=EOF){
n--;
for(long long i=;i<=m;i++)scanf("%lld",&a[i]);
for(long long i=;i<=m;i++)dfs(,,i,i);
printf("%lld\n",ans);
}
}
最新文章
- Hadoop的学习--安装配置与使用
- PHP 版本判断 version_compare() 函数
- MySql怎样去掉某个字段最后的逗号或最后的字
- NET 强签名
- spring boot初探
- Orchard创建自定义表单
- rwsr-sr-x类似权限设置
- 《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的顶级控件,或是引用母版页的嵌套母版页。”
- PHP 中和 HTTP 相关的函数及使用
- 使用PHP发送邮件
- ASP.NET防止用户多次登录的方法
- Goffi and Squary Partition
- 自定义按钮~自适应布局~常见bug
- Redis进阶实践之十八 使用管道模式加速Redis查询
- [SDOI 2010]魔法猪学院
- ajax 文件下载
- centos7安装python3 以及tab补全功能
- gitlab 之 cicd
- 使用vendor管理go第三方包
- 快讯:微软安卓版个人助理(Cortana)在美国境内进行公測