容斥原理应用Acwing890借鉴题解

参考文献

简单的容斥原理介绍请看下图:
QQ浏览器截图20200807160444.png
QQ浏览器截图20200807160125.png

C++ 代码

简单的容斥原理介绍请看下图:

本题思路:
将题目所给出的m个数可以看成是m位的二进制数,例如
当p[N]={2,3}时,此时会有01,10,11三种情况
而二进制的第零位表示的是p[0]上面的数字2,第1位表示p[1]上面的数字3
所以当i=1时表示只选择2的情况,当i=2(10)时,表示只选择3的情况,当i=3时,表示2和3相乘的情况
在过程中可以用标记变量t记录,可以按照t的值来选择是”+”还是“-”

代码如下:

#include #include using namespace std; typedef long long LL; const int N=20; int p[N]; int main() { int n,m; cin>>n>>m; for(int i=0;i>p[i]; int res=0; for(int i=1;i<1<>j&1) { if((LL)t*p[j]>n) { t=-1; break; } t*=p[j]; ++cnt; } if(t!=-1) { if(cnt%2) res=res+n/t; else res=res-n/t; } } printf("%d",res); return 0; }

__EOF__

本文作者爱飞鱼
本文链接https://www.cnblogs.com/mathiter/p/17721118.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   potential-star  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示