Meow ===== B ===== yuki: 网络流最小割 + 线段树优化建图 读完题就感觉到浓浓的最小割味,糊了一个线段树优化建图居然AC了。(正常来讲应该在树上倍增建图) Dirty:\居然没有Dirty !/ ===== D ===== toby: 其实很简单,赛中榜歪了。只需要先将每个人的喜好排序,然后从 $k % n$ 开始倒着轮流选自己最喜欢的菜就可以了。 Dirty: 最开始没有读懂题所以没有发现是简单题。3 个小时才 AC ===== E ===== Red: 签到,开局看榜看到之后光速糊过了。 Dirty: 无 ===== F ===== Red: 博弈,发现是二分图,猜了一下就过了。 Dirty:第一次想错了,第二次把 `||` 和 `&&` 写反了 ===== G ===== yuki: 不断地找尽可能短的就行,因为如果一个长的是对称的它一定可以被拆成三个短的。 Dirty:Hash没有爆int了(我是笨蛋),最后五分钟才AC的题实在是太慌了(所以-5了,提交了一些例如修改了hash的key之类的无效代码) ===== H ===== toby: 也是简单题。同样是榜歪了。前缀和即可。 A 表示取反,B 表示 +1。$AB$ 就是 $B^{-1}A$,$AA$ 就是没有操作。故总可以将一串 AB 转化为 $B^nA$。所以可以前缀和。 PS: 我是 **,用了 struct 来写这个前缀和,重载 operator 的时候想了很久,其实用一个 int 就可以了。 Dirty: 好在没有 dirty ===== I ===== toby: 简单题。构造五子棋的平局棋面。这个随便构造就可以了。我构造大概长这样: 4 6 xxooxx ooxxoo xxooxx ooxxoo 5 4 xoxo xoxo oxox oxox xoxo 7 7 xxooxxo ooxxoox xxooxxo ooxxoox xxooxxo ooxxoox oxoxoxx Dirty: 无 ===== K ===== yuki: 每个箱子只能推一次的推箱子,用 f[i][0, 1, 2, 3] 分别表示位置 $i$ 的四种状态: * 没有箱子 * 有一个不能动的,从 $i - 1$ 推过来的箱子 * 有一个能动,还未被推过的箱子 * 多了一个箱子需要被推到 $i + 1$ 去 然后递推即可。 Dirty:写着写着就把 123 三种状态写混了(昏迷.jpg) ====== 赛中没过的题 QAQ ====== ===== A ===== red: 试了几下后发现 $crc(x) \oplus crc(y) = crc(x \oplus y)$,因此可以独立考虑,让睿睿写高斯消元,但他不愿意写() 以及,mian队的解法惊为天人,大家快去学x toby: 发现的结论: $crc(x) \oplus crc(y) = crc(x \oplus y)$ 因此我的想法是欲求的结果 x 满足: $crc(header) \oplus crc^{-1}(footer) \oplus crc(x) = x$。 于是求解 $crc(x) \oplus x$ 这个函数的逆即可。线下解出基后直接在线异或就可以了。 然而经过 red 的指点发现不对,不是 $crc(x)$,应该是有 $32+n_2$ 位不是 $32$ 位,遂寄。red 说可以写一个在线解异或方程的,是正解,可惜没有时间了,又不太会,遂摆。