A. Stickogon
B. A BIT of a Construction
我们一定可以将 n 分成 a,b,使得答案最大化。
具体地,若 n 二进制下某位原本为 1,则 a 的这位为 1,否则借位,a,b 都为 1。
例如 n(10)=1001(2),则 a=111,b=10。
C. How Does the Rook Move?
对于每一回合,若 r=c 则相当于 n 减小 1,否则 n 就减少 2。
设 fn 表示 2n×2n 的棋盘,不能走对角线的最终的不同棋盘状态数量。
这相当于是让 2n 个点两两匹配的方案数,观察最后两个点:
- 若这两个点匹配则方案数加 fn−1;
- 否则,先将其余点匹配完成后,从 n−1 队中挑出一对,答案加上 2(n−1)fn−1。
于是得到 fn=(2n−1)fn−1,初始化 f0=1。
于是有答案
ans=n∑k=0(nk)fn−k2×2n−k2
D. A BIT of an Inequality
设 sx=a1xora2xor…xorax,
x,y,z 成立当且仅当 (szxorsx−1) 的第 mxy 位为 0,mxy 表示 y 的最高位。
于是直接计算就可以。