AcWing算法提高课 容斥原理
容斥原理的复杂度是2^n,一般n不会很大
形如:
由于容斥原理一共有2^n中选法,可以用二进制枚举,1表示选择某个条件。
然后将偶数个1的状态加起来,奇数个1的状态减去
例题:
https://www.acwing.com/problem/content/216/
莫比乌斯函数:
定义:
用于结合容斥原理求和n互质的数的个数
其中,莫比乌斯函数就是Si的系数
求法:(筛质数的时候直接处理)
模板:

void Init(int n) { mobius[1]=[1]; for(int i=2;i<=n;i++) { if(!not_primes[i]) { primes[cnt++]=i; mobius[i]=-1; } for(int j=0;primes[j]*i<=n;j++) { not_primes[primes[j]*i]=true; if(i%primes[j]==0) { mobius[i*primes[j]]=0;//至少存在两个primes[j]因子 break; } else { mobius[i*primes[j]]=mobius[i]*-1//i*primes[j]比i多一个质因子 } } } }
数学知识:
利用上图的g(x),可以求得[a/x](下取整)的同样值的数量(一共小于2sqrt(a)个)
此数量(每一跳就是g(x))
例题:https://www.acwing.com/problem/content/description/217/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人