11 2024 档案
摘要:先考虑构建树的形态,显然可以将所有边按边权从小到大排序,构造最小生成树。注意到相邻的两个点之间的颜色数只可能是 \(1\) 或 \(2\),所以只考虑边权 \(\le 2\) 的就好了。 接下来考虑怎么染色。考虑从一个点开始 dfs,每次确定当前遍历到的点的颜色,考察当前点到父亲的边权: 等于 \(
阅读全文
摘要:用 \(1\) 表示 A,\(0\) 表示 B,观察进行一次操作后字符串会发生什么变化。首先当第一个数为 \(1\) 时,只会将第一个数变为 \(0\)。对于剩下的情况,手玩一下可以发现会将第一个数移到末尾,然后将所有数异或 \(1\)。 先考虑暴力怎么做,可以记一个指针 \(i\) 和当前应该给全
阅读全文
摘要:首先将序列排序,这是显然的。 考虑倒着确定 \(b\) 序列中的每个数。即从完整的 \(a\) 序列开始,每次删掉两个数,记录中位数。 先找出 \(b\) 序列合法的条件。容易发现对于所有 \(i\),在 \(b_{p_i}\) 成为中位数时,\(p_i,p_{i+1}\) 之间的所有数都已经被删除
阅读全文