专栏文章

zak 的随手构造

个人记录参与者 1已保存评论 0

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@miqb2i3j
此快照首次捕获于
2025/12/04 01:53
3 个月前
此快照最后确认于
2025/12/04 01:53
3 个月前
查看原文
今天 zak 来讲题讲到了 [ABC274Ex] XOR Sum of Arrays
给出一个序列 aa,询问:
  • 提取出 [l1,r1],[l2,r2],[l3,r3][l_1,r_1],[l_2,r_2],[l_3,r_3] 这三个区间,考虑每一位,对位异或和是否都为 00
我提出了这样一个算法:
随机几个 len,klen,k,设 bib_iaia_i 按照 lenlen 的长度循环左移 kik*i 位的结果,维护 bb 的异或和,判断时直接判断 bb 的异或和是否相同。
后来这个算法通过了 atcoder 的数据并跑到了 luogu 次优解。
然后,zak 给出了随手的构造叉掉了我的做法:
  • ai=[xi]i=164(1+xi)mod2a_i=[x^i]\prod_{i=1}^{64}(1+x^i) \mod 2

以下先提出一个问题:
给定 nn,构造一个无穷长的序列,这个序列只有前有限项的值可能为 11,之后都是 00,且对于任意 0i<jn,akj+i=00\le i<j\le n, \oplus a_{kj+i}=0
要求上述“前有限项”长度 n2\le n^2,且不能全为 00
不难发现,这个构造题可以卡掉我的构造。
构造:ai=[xi]i=1n(1+xi)mod2a_i=[x^i]\prod_{i=1}^{n}(1+x^i) \mod 2
解释:
考虑每个 ii
你发现这个串是 1+xi1+x^i 的倍数,相当于你用相差 ii 的两个数(比如 i=2i=2 时,即为 101101)去“拼”他可以把这个串异或成 00
注意到每次去拼的时候,每个模 iijj 的等价类的异或和都不变,所以构造成立。

评论

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

正在加载评论...