Codeforces Round 940 (Div. 2) and CodeCraft-23 (contest id: 1957)

祈雨ㅤ發表於2024-04-25

A-C

A: group sticks by same length. Add the size of group / 3 for all groups.
B: Divide into few cases, determine the maximal possible bits on in any number x <= n. Then go from there. special case is when n = 1.
C: formula: dn = d(n-1) + (2n-2) * d(n-2).only consider the leftmost col and top row and reduce the problem d(n) to subproblems d(n-1) and d(n-2). I pre-comuted all results.

D

We can refactor the given inequality to: \(f(x,z) \oplus a_y > f(x,z)\). Therefore, when we consider the subarray ([x...y]) and ([y...z]), for the highest significant bit of \(a_y\), it should be a on for one subarray, and off for the other, or other way around.

We can do some prefix and suffix to record the number of subarrays thaat has each bit on or off, and calculate the contribution of \(a_y\).

More details to be taken care when calculating the contribution. (adding 1 etc.) Upsolve after reading editorial: https://codeforces.com/contest/1957/submission/258019767

相關文章