省选联考 R6
https://cplusoj.com/d/senior/contest/69a595501363e1a0769508ec
ori:
?
?
https://codeforces.com/group/UqOrh5VnfT/contest/523714/problem/E
T1
判定 \(i\) 是否能到 \(j\):不妨设 \(i<j\),则 \(i\) 每次跳到 \([i+1,i+d]\) 中的最小值。显然有个阶梯型,可以按照值域从大往小扫处理。
T2
T3 Avoid XOR Zero
对于一组 \(b,c\),我们要求 \(b_i\oplus c_i\) 组成的线性基可以构造出 \(\bigoplus b_i\)。
注意到,若 \(p+q=a,p\oplus q=b\),则可以选择 \(c\subseteq b\),令 \(p'=p\oplus c,q'=q\oplus c\),仍然有 \(p'+q'=a,p'\oplus q'=b\)。(交换某些位)
那么在保证 \(b_i\oplus c_i\) 不变的情况下,我们可以给 \(\bigoplus b_i\) 异或上 \(S=\bigcup b_i\oplus c_i\) 的子集。
必要条件:\(\bigoplus b_i\subseteq S\)。
等价于要求所有 \(T\subseteq S\) 都能被造出来,也就是线性基大小为 \(|S|\)。
令 \(tr(x)\) 表示只保留 \(x\) 的后导 1 后的结果,有 \(tr(p+q)=tr(p\oplus q)\)。
考虑对于某个 \(a\) 的一个构造:\(b_i=\frac{a_i-tr(a_i)}{2},c_i=a_i-b_i\),则 \(b_i\oplus c_i=tr(a_i)\)。
- 设 \(\max tr(a_i)=2^w-1\),则每个 \(1\le j\le w\) 都要求有 \(tr(a_*)=2^j-1\)。
- \(\forall i,a_i<2^{w+1}-1\)。
发现 \(a=[3,5]\) 满足条件但是还是不行。加强一下:
- 对于所有的 \(1\le j\le w\),都有 \(\exists i, tr(a_i)=2^j-1,a_i<2^w\)。
- 对于所有的 \(i\) 都有 \(a_i<2^{w+1}-1\)。
这是充分的。且 \(w\) 是唯一的。
计数考虑枚举每个 \(w\),然后枚举每个 \(tr\),考虑有多少个,然后分步转移一下大概是 \(O(n^2m^2)\)。
浙公网安备 33010602011771号