构造专题 3
构造专题 3
Problem A. [AGC031C] Differ by 1 Bit
将 \(p\) 看作 在 \(n\) 维二阶立方体上的路径。\(n\) 维二阶立方体是张二分图,所以一个有解的必要条件是 \({\rm popcount}(a_i \oplus a_j)\) 为奇数。
每次找到 \(S,T\) 不同的一维,在这一维上劈开,再找到不同的一维作为中转,递归求解。边界为只有一维不同,此时直接走过去即可。
Problem B. [ARC122E] Increasing LCMs
\({\rm lcm}_{j=1}^{i-1}(a_j)<{\rm lcm}_{j=1}^{i}(a_j)\),这个条件不好判断,那就在质因子的角度上考虑,枚举 \(j\in[1,i-1]\),不断令 \(a_i\leftarrow \frac{a_i}{\gcd(a_i,a_j)}\),最后 \(a_i>1\) 就合法。
从限制最紧的开始构造,即从 \(n\) 到 \(1\) 构造。每次选出任意一个合法元素,剩余的合法集合只会增加不会减少,选不出来就无解。
Problem B. CF949E Binary Cards
观察 1: 一个 \(2^k\) 不会出现多次,否则用 \(2^k,2^{k+1}\) 一定不劣。
观察 2: \(2^k,-2^k\) 不会同时出现,否则用 \(-2^k,2^{k+1}\) 一定不劣。
枚举二进制位,若有数是奇数就要选一个 \(2^k\) 或 \(2^{k+1}\),然后所有奇数加上或减去 \(2^k\),接着所有数除以二向 0 取整继续做。每次除完之后就去重,因为值域折半,所以复杂度 \(O(V\log V)\)。
Problem C. CF1270G Subset with Zero Sum
???
可以发现 \(1\le i-a_i\le n\)。\(i\) 向 \(i-a_i\) 连边,形成内向基环树,把环拿出来就是答案。
设 \(i\) 连向 \(j\),则 \(a_i=i-j\),环上所有的 \(i-j\) 和为 \(0\)。
Problem D. UOJ52 元旦激光炮
每次问三个序列的第 \(\lfloor \frac k 3 \rfloor\) 小值,找到最小的那个,这个序列的前 \(\lfloor k/3 \rfloor\) 小值一定都不是答案,排除,再令 \(k\leftarrow k-\lfloor k/3 \rfloor\)。
这样 \(k\) 每次乘 \(2/3\),\(\log\) 次就能找到答案。

浙公网安备 33010602011771号