题目链接:https://ac.nowcoder.com/acm/contest/548/F

题意:简化题意之后就是求[1,n]中不能被[2,m]中的数整除的数的个数。

思路:简单容斥题,求[1,n]中不能被[2,m]中的数整除的数的个数,可以通过求能够被整除的数。

   首先,[2,m]中的合数肯定能由[2,m]中的素数的乘积来表示,所以我们仅需要考虑[1,n]中能由[2,m]中的素数整除的数的个数即可,记为sum。

   然后,我们知道[1,n]中能够被x整除的数的个数为n/x(向下整除)。

   then,如果按上一步计算的话,会出现重复计算的问题,这个时候就用到了容斥原理,若[2,m]有p个素数,分别为cnt[1]..cnt[p],那么这p个素数可以有(1<<p)-1个组合,记该组合中所有素数乘积为tmp,素数个数为num,则能被tmp整除的数有(n/tmp)个,若num为奇数,则sum加上(n/tmp),若为偶数,则sum减上(n/tmp),这样就解决了问题。还有本题要注意的一个小细节是若k==0,直接输出QAQ即可。

AC代码:

 #include<bits/stdc++.h>
using namespace std;
typedef long long LL; int T,m,cnt[]={,,,,,,,,};
int M[]={,,,,,,,,,,,,,,,,,,,,};
LL k,q,n,sum; int main(){
scanf("%d",&T);
while(T--){
scanf("%lld%lld%lld%d",&k,&q,&n,&m);
int p=M[m];
sum=;
for(int i=;i<(<<p);++i){
int num=;
LL tmp=;
for(int j=;j<=p;++j)
if((<<(j-))&i){
++num;
tmp*=cnt[j];
}
if(num&)
sum+=n/tmp;
else
sum-=n/tmp;
}
sum=(n-sum)+k-;
if(sum>n) sum=n;
if(k&&sum>=q) printf("Yes\n");
else printf("QAQ\n");
}
return ;
}

牛客练习赛43-F(简单容斥)的更多相关文章

  1. 牛客练习赛64 D【容斥+背包】

    牛客练习赛64 D.宝石装箱 Description \(n\)颗宝石装进\(n\)个箱子使得每个箱子中都有一颗宝石.第\(i\)颗宝石不能装入第\(a_i\)个箱子.求合法的装箱方案对\(99824 ...

  2. 牛客网 牛客练习赛43 F.Tachibana Kanade Loves Game-容斥(二进制枚举)+读入挂

    链接:https://ac.nowcoder.com/acm/contest/548/F来源:牛客网 Tachibana Kanade Loves Game 时间限制:C/C++ 1秒,其他语言2秒 ...

  3. 牛客练习赛52 C 烹饪(容斥+扩展欧几里得)

    来源:https://ac.nowcoder.com/acm/contest/1084/D 思路来源:https://www.cnblogs.com/Morning-Glory/p/11521114. ...

  4. 牛客练习赛43 Tachibana Kanade Loves Game (简单容斥)

    链接:https://ac.nowcoder.com/acm/contest/548/F来源:牛客网 题目描述 立华奏是一个天天打比赛的萌新. 省选将至,萌新立华奏深知自己没有希望进入省队,因此开始颓 ...

  5. 牛客练习赛43 Tachibana Kanade Loves Review C(最小生成树Kruskal)

    链接:https://ac.nowcoder.com/acm/contest/548/C来源:牛客网 题目描述 立华奏是一个刚刚开始学习 OI 的萌新. 最近,实力强大的 QingyuQingyu 当 ...

  6. 牛客练习赛43 Tachibana Kanade Loves Probability(快速幂)

    链接:https://ac.nowcoder.com/acm/contest/548/B来源:牛客网 题目描述 立华奏在学习初中数学的时候遇到了这样一道大水题: “设箱子内有 n 个球,其中给 m 个 ...

  7. 牛客练习赛3 F - 监视任务

    链接:https://www.nowcoder.net/acm/contest/13/F来源:牛客网 题目描述

  8. 牛客网 牛客练习赛43 C.Tachibana Kanade Loves Review-最小生成树(并查集+Kruskal)+建虚点+读入挂

    链接:https://ac.nowcoder.com/acm/contest/548/C来源:牛客网 Tachibana Kanade Loves Review 时间限制:C/C++ 2秒,其他语言4 ...

  9. 牛客练习赛16 F 选值【二分/计数】

    链接:https://www.nowcoder.com/acm/contest/84/F 来源:牛客网 题目描述 给定n个数,从中选出三个数,使得最大的那个减最小的那个的值小于等于d,问有多少种选法. ...

随机推荐

  1. eclipse插件spket安装

    1.

  2. Mycat 水平拆分

    一致性Hash理解 https://blog.csdn.net/cywosp/article/details/23397179?utm_source=blogxgwz1 十种 水平拆分 https:/ ...

  3. BBS-基于用户认证组建和Ajax实现登陆验证

    功能1: 基于用户认证组件和Ajax实现登录验证(图片验证码) 总结: 1 一次请求伴随多次请求 2 PIL 3 session存储 4 验证码刷新 步骤: 1.配置静态文件夹 settings.py ...

  4. Django--views(视图层)

    路径匹配后-----传给视图函数 一.视图函数 视图层,熟练掌握两个对象即可:请求对象(request)和响应对象(HttpResponse) 一个视图函数,简称视图,是一个简单的Python 函数, ...

  5. linux shell 杂

    1. 字符串截取 var=http://www.baidu.com/index.html echo ${var} var=http://www.baidu.com/index.html /*从左到右第 ...

  6. APP发行渠道

    1,安卓APP发行:google play,原名android store 2,IOS APP: apple store 3,国内各大平台,应用宝,360,小米,华为 ...

  7. Oracle数据库安装指南

    文档使用声明 1.安装指导仅限测试环境(非生产环境)安装使用,生产环境oracle数据库建议按公司要求安装. 安装环境 1.SuSE10/SuSE11(64位) + Oracle11gR2 工具和安装 ...

  8. avalon2学习教程04显示隐藏处理

    今天的主角是ms-visible,它的效果类拟于jQuery的toggle,如果它后面跟着的表达式为真值时则显示它所在的元素,为假值时则隐藏.不过显示不是 display:none这么简单,众所周知, ...

  9. JAVA程序员常用英语

    JAVA程序员常用英语 干程序员这行实在是离不开英语,干程序员是一项很辛苦的工作,要成为一个高水平的程序员尤为艰难.这是因为计算机软件技术更新的速度越来越快,而这些技术大多来源于英语国家,我们在引进这 ...

  10. 使用Flash Media Server(FMS)录制mp4格式的视频

    最近在做一个有关视频直播和点播的项目,客户的一个需求就是可以控制对直播流的录制,直播的实现采用的是Adobe的Flash Media Server,具体方式就是:视频采集端采集视频并编码->rt ...