ABC349
update on 2024/4/19: F 题的题解写的不太对,正在修。
update on 2024/4/19:修完了
不用考试了/kx/kx/kx/kx/kx/kx/kx
ABCD一眼。
E
发现状态不多,可以直接搜,状态之间的转移关系很容易让人想到 minimax 搜索,直接做即可。注意细节。
F
题面没有废话,数据范围良心,做法巧妙,好评。
一看到 lcm,不难想到要分解质因数,试除法可以通过,不过我们更喜欢 Pollard-Rho。
将
对于
接下来对于新的
题解写的什么神必容斥啊,我怎么看不懂啊。
现在问题等价于,给
直接做是不好做的,我们考虑容斥。
首先思考一下容斥是什么。
容斥
有很多的集合,我们想求出它们的并集有多少数。
这很明显可以哈希,不过我们想要容斥。
考虑有一张韦恩图。图中的每个圈代表一个集合,若两个圆相交,则代表相交部分为它们的交集。
答案显然就是图上的各部分之和。但没法直接求。我们考虑用计算重合后得到的总数减去重合的部分。
计算重合后得到的总数显然是
直接的思想是减去任两个圆相交的部分,即减去
以此类推,令
虽然正确性在直觉上已经非常对,但是我们还是无法信服。
容易发现
另一种角度来说,我们每次计算被
回到这道题。我们考虑记录不合法的方案有多少种。即用容斥的方法,记录对于
具体而言,对于一个长为
小 trick:对于二进制数
for(int T=S;T;T=(T-1)&S)
这样做的时间复杂度上限是
准确的复杂度分析大概是用子集求和的思路证明。
G
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】