DengStar的博客

博客

NOIP Round#8 T1 的一种较直接的做法

2024-11-27 11:13:54 By DengStar

我并没有看出来“最后 bitset 中为 1 的点 j 是在 i[l,r]si,j 全为 0 / 全为 1 的。”这个关键结论(不会只有我一个人觉得这并不显然吧),但我们仍有一些比较直接的做法解决本题。

n 较小时,暴力预处理出所有 n2 个数对的答案,时间复杂度 O(n2m)O(1)

m 较小时,考虑用数据结构来维护。能用的数据结构很多,从时间复杂度上考量可以用 ST 表(注意 andor 都满足可重复贡献),时间复杂度 O(mnlogn)O(m)

直接这样写仍然无法通过本题,但加上手写 bitset 的优化就够了:方法 1 的时间复杂度降为 O(n2mw)O(1),方法 2 的时间复杂度降为 O(mnlognw)O(mw),其中 w=64(如果用 unsingned long long 压位的话。)考虑到 min,可以通过。

这种做法的时间复杂度和代码实现难度都劣于正解,但无需发现正解所需的结论,仅供参考。

不用手写 bitset 的提交记录:link

手写 bitset 的提交记录:link

DengStar Avatar