[AT_abc313_d] Odd or Even

发布时间 2023-08-07 11:30:41作者: yh2021shx

简单题,但是为什么赛场上 WA 了呢?

弱化题目,设 \(n = k + 1\),发现只需要每一个数不取询问 \(k\) 次,通过前缀和得出。

再设 \(k + 1 \ | \ n\),发现只需要类似分块即可解决。

回到原题,最后的一部分如何计算?我们可以对 \([n - k, n]\) 这个区间做询问,但是对于已经计算的数不再去除。把每一个得到的和减去前面已经计算的数的和就是真实的和,类似的也能计算出。

询问次数刚好为 \(n\),时间复杂度为 \(\mathcal{O}(n)\),可以通过此题。