题解:CF2153F Odd Queries on Odd Array

· · 题解

叠甲:场切了,别尬黑,应该是场切的 div2 选手中这场分最低的。

简单根号做法,听说是因为出题人用的 py 要跑 10s 所以放过了分块。

题意比较简单,就是维护出现次数为奇数的数的和。

对每个块,求出每个数出现多少次,然后前缀和。然后求块到块的答案,因为散块只有 O(\sqrt n) 个值出现所以把这些值的贡献剪掉然后再补回去即可,时空均为 O(n^2)

写的时候注意一下因为要模 2 所以可以用 bool 所以不存在空间问题,更进一步用 bitset 空间更小而且初始化的时候更快。其它地方也要注意一下常数不要写丑了就行,实在不行就看代码吧:

code

感觉真的算不上卡常