专栏文章

题解:P13997 【MX-X19-T6】「FeOI Round 4.5」はぐ

P13997题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minypkte
此快照首次捕获于
2025/12/02 10:31
3 个月前
此快照最后确认于
2025/12/02 10:31
3 个月前
查看原文
T6 最简单的一集。
考虑拆位,对于每一位只需要计算出有多少个数在这一位上为 11 即可。根据经典套路,维护这些数的后 ii 位,如果 ai+bi(ai,bi<2i+1)[2i,2i+11][2i+2i+1,2i+21]a_i+b_i(a_i,b_i\lt 2^{i+1})\in[2^{i},2^{i+1}-1]\cup [2^{i}+2^{i+1},2^{i+2}-1] 那么 ai+bia_i+b_i 的第 ii 位为 11。所以我们拆位后只需要维护 ai+depia_i+dep_iaidepia_i-dep_i 值域一段区间里的数的个数奇偶性即可。
直接树剖太蠢了,注意到这里只需要求奇偶性,容易想到出栈序 trick,我们在入栈和出栈时都将节点压入序列,查询时只需要查询路径两个端点入栈时刻之间的位置即可。由于不在路径上的节点必然出现偶数次,在路径上的节点必然存在奇数次,所以不在路径上的节点对答案没有影响。
最后还有一点小细节,audepua_u-dep_u 为负数怎么办。容易想到不用去管它,当作对 2i+12^{i+1} 取模做即可。
代码非常好写,没有任何细节。

评论

0 条评论,欢迎与作者交流。

正在加载评论...