Luogu3791 普通数学题

题意:给出 ,求 答案对 取模,,实现


为了方便,将 的限制改为

异或在数论中的性质很差,不能先对 函数下手。异或和位有关,不妨先从位的角度思考。

发现若 ,那么 恰好把 以内的所有数取到 次。即

若有了 的影响,后 位仍然恰把 以内的所有数取到 次。高位会被指定,相当于求 的区间和。


考虑 的情形。不难发现 会把 以内的数都取到 次。即 若有了 的影响,后 位仍然恰把 以内的所有数取到 次。高位会被指定,相当于求 的区间和。


不是 的整幂,则可以采用类似数位 的技巧,将答案划分成若干个 “钦定部分高位,其余低位随意” 的求和。

会划分出 的区间和。

而众所周知 的前缀和可以一个根号求出,复杂度即为


事实上,本质不同的询问并不多。

考虑我们“钦定若干高位”是怎样做的,肯定是卡住 的上界。

而高位的个数只有 ,也就只有 种钦定的方法。

记忆化一下就做到 了。