专栏文章
题解:P13497 【MX-X14-T7】墓碑密码
P13497题解参与者 2已保存评论 2
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @miopcx99
- 此快照首次捕获于
- 2025/12/02 22:57 3 个月前
- 此快照最后确认于
- 2025/12/02 22:57 3 个月前
一个简单一点的做法?
由于从 中选出的数是可重的,我们不妨先假设不可重,然后设选出了 个,方案数乘上 。现在转化为求 表示从 中选出 个数的选法数,满足这 个数的异或和属于集合 。
先考虑值域 的部分分。将其写成一些短多项式乘积的形式 ,这里我们增加了 这一元记录选出了多少个。这个是经典 FWT,简要来说,考虑 的 FWT 数组只存在 和 ,求出 和 的个数 和 就可以计算选出 个的方案数,即 。求出 FWT 再 IFWT,答案为 项。对每个 都要做一次 IFWT,时间复杂度 ,赛时实现了这个在梦熊上获得了 60 分。
进一步优化,由于我们只需求 IFWT 数组 在 中的对应项之和,即:
将其变成:
对 做 FWT,再对应点乘。现在时间复杂度变为 。
注意到瓶颈仅仅在于求出 和 的 FWT 数组,计算答案的部分可以在 的时间复杂度内完成。
考虑优化 FWT,一个重要的事实是 和 的大小都只有 。对每个 记录一个 128 位的二进制数表示每个 中数 的 ,通过 转移到 ,空间复杂度仍然不可接受。一个优化的办法是按位 dfs,任意时刻 dfs 栈中最多只有 个数。这一部分的时间复杂度 ,空间复杂度 。
总时间复杂度 ,其中 ,, 是位长, 是询问的 的大小。在此批评出题人时限只开 2s 重度卡常。
相关推荐
评论
共 2 条评论,欢迎与作者交流。
正在加载评论...