题目链接: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. WebForm(response内置函数)#转

    利用提供的内置对象,可以实现页面之间的数据传递及实现一些特定的功能,如:缓冲输出,页面重定向等等. Response :响应,反应 Request:请求 Server:服务器 Application: ...

  2. a标签自执行点击事件

    //html <a href='http://www.baidu.com' ><button id='sss'>百度</button></a> //原生 ...

  3. MFC 如何在一个窗体中嵌套在另一个窗体中

    其中的一个方法是讲子窗体设置为非模式对话框,具体操作为 :设置子窗体的border属性为none,style为 child. 在父窗体中需要用create来实现,具体例子如下. 在父窗体的OnInit ...

  4. Flex NumberFormatter 数值的格式化

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  5. Redis 五大数据类型及常用操作

    # 更详细的操作命令请查看 => http://redisdoc.com/ 1: KEY ( 键值 )  => 常见操作 2: String ( 字符串 ), 最大支持 512M 2.1: ...

  6. leetcode212

    class Solution { public List<String> findWords(char[][] board, String[] words) { List<Strin ...

  7. guava 对集合的支持

  8. springboot 端口号

    1. 读取端口号 2.多端口运行 2.

  9. 为什么我希望用C而不是C++来实现ZeroMQ

    原文在这里 开始前我要先做个澄清:这篇文章同Linus Torvalds这种死忠C程序员吐槽C++的观点是不同的.在我的整个职业生涯里我都在使用C++,而且现在C++依然是我做大多数项目时的首选编程语 ...

  10. 深度学习原理与框架-神经网络结构与原理 1.得分函数 2.SVM损失函数 3.正则化惩罚项 4.softmax交叉熵损失函数 5. 最优化问题(前向传播) 6.batch_size(批量更新权重参数) 7.反向传播

    神经网络由各个部分组成 1.得分函数:在进行输出时,对于每一个类别都会输入一个得分值,使用这些得分值可以用来构造出每一个类别的概率值,也可以使用softmax构造类别的概率值,从而构造出loss值, ...