百度之星 2023 初赛第三场

发布时间 2023-09-25 21:58:32作者: ft61

开场很顺利,一度进了前十
《与蝴蝶一起消散吧》一开始没看到每波怪物的血量一样,浪费了一些时间
《染色游戏》做了 1h,思路很快就有了但想不清楚计数细节。第一次 WA 了后写了暴力,调过手造的数据后又 WA 了,然后才写拍。感觉还是得拍,不过计数题也不归我管(
一开始以为《魔法阵》是分治板子,后来发现不会找欧几里得距离最远的点
《竞猜》冲了个 \(log^{2}\) 做法,最后 5min 调完了但 MLE,才看到 64MB。不过赛后把空间卡下去了也 TLE


码题集

染色游戏

赛时做法

讨论 \(2\times2\) 网格的所有情况,发现行满足时列一定满足

枚举有 \(i\) 行相同,其余 \(n-i\) 行与这 \(i\) 行相反(\(i<n-i\)),可以解出这 \(i\) 行每行有 \(x\)\(1\),方案数为 \({n\choose i}{m\choose x}\)

对于 \(i=n-i\) 的情况:枚举这 \(i\) 行有 \(x\)\(1\) 计算。注意 \(x=\frac{k-ix}{n-i}\) 的情况只有一半是本质不同的

代码没保存

标算

讨论 \(2\times2\) 网格的合法情况,发现 \(1\) 的个数为 \(0,2,4\)(所以第一行第一列确定后可以把其他格子唯一地填出来,不过没有用)

令第一列第 \(i\) 行为 \(a[i]\),第 \(j\) 列与第一列是否相同为 \(b[j]\),那么格子 \((i,j)\)\(a[i]\oplus b[j]\)。显然合法矩阵可以被唯一地构造出来,根据上面的结论构造出来的矩阵也一定合法

问题转化为了求 \(a,b\) 的方案数。枚举 \(a\)\(1\) 的个数,可以解出 \(b\) 中的。需要特判 \(b\) 中任意个 \(1\) 都可以的情况

两种做法各有优劣,个人认为能想清楚细节的话还是我的做法比较自然

竞猜

不考虑夺冠奖励的话一定是 \(b\) 小的获胜,钦定 \(u\) 获胜的话除根链外的子树仍满足这个性质

线段树维护 \(b[u]\) 表示子树 \(b\) 的最小值,\(t[u,0/1]\) 表示冠军不在/在子树 \(u\) 的最小收益。时间复杂度 \(O(n\log n)\)