USACO26JAN B, S

比赛链接

还没打比赛的先别急着看!!!

Chip Exchange B

先把所有 B 换成 A,然后整段分讨一下选 A 更优还是选 B 更优,散段一定先选尽量多的 A 再把 B 取满 \(C _ {B}\) 个。

COW Splits B

无解当且仅当 \(n\) 为奇数,把一步操作的特判掉,猜想一定能在两步操作内做完。

考虑把序列分成前 \(n / 2\) 个和后 \(n / 2\) 个,发现 COWOWCWCO 两两 LCS 为 2(比如 COWOWC 都含有 OW),所以前后的对应段第 1 次操作选 LCS,第 2 次操作选剩下的那个字符,拼起来一定是平方串。

Photoshoot B

因为题目保证答案单调不减,一次操作发生变化的子矩形又只有至多 \(K ^ 2\) 个,暴力更新即可。

Lineup Queries S

用数学方法加速,直接递归处理复杂度就是单 \(\log\) 的。

Mooclear Reactor S

先划分成若干个连通块,对于每个连通块把任意一个点定为根,然后处理出连通块内所有点的权值与根的权值的函数关系,特判掉无解或定值的情况,那么每个点的贡献是一段区间,离散化之后做前缀和就能计算。

Sliding Window Summation S

通过对比两个相邻的 \(r\) 就能知道 \(b _ i\)\(b _ {i + k}\) 是否相等。故把 \(b\) 划分成 \(k\) 组,对于第 \(i\) 组处理出 \(c _ {i, 0}, c _ {i, 1}\) 表示 \(b _ i\) 分别取 \(0 / 1\) 时这组有多少个 \(1\)。答案大体就是每组 \(c _ {i, 0}, c _ {i, 1}\)\(\min / \max\) 的和,但注意取的 \(c _ {i, 1}\) 个数的奇偶性不符合 \(r _ 1\) 时需要调整 1 个。

posted @ 2026-01-11 11:35  yemuzhe  阅读(45)  评论(0)    收藏  举报