Educational Codeforces Round 105
A. ABC String
枚举各字母对应的括弧即可。
1 | #include<bits/stdc++.h> |
B. Berland Crossword
枚举四个顶点的颜色即可。
1 | #include<bits/stdc++.h> |
C. 1D Sokoban
仅考虑正方向,负方向做对称即可。
推完之后的箱子一定是这样的清形:往正方向走,先遇到一段连续的箱子,再遇到一些处于原位置没动的箱子。于是我们只需要枚举连续箱子的末尾的位置,就可以通过 lower_bound
等方式算出这种情形下的得分。
1 | #include<bits/stdc++.h> |
D. Dogeforces
递归。考察当前矩阵,其中的最大数必然是根结点的值,于是最大数对应的行和列必定处于根结点的不同子树中,如此我们可以得到各个叶节点所在的子树,然后分别对各子树递归处理即可。
1 | #include<bits/stdc++.h> |
E. A-Z Graph
首先,要存在这样的路径,必然至少有一对 $(u,v)$ 满足有向边 $u\to v$ 和 $v\to u$ 同时存在。
这时,如果 $k$ 是奇数,那么 $u\to v\to u\to\cdots\to v\to u$ 就是一条合法路径;
如果 $k$ 是偶数,假设 $a_1\to\cdots\to a_k$ 是一条合法路径,则必然其正中间的那条边 $u\to v$ 要和 $v\to u$ 的权重相同,也就是说存在一对 $(u,v)$ 满足 $u\to v$ 和 $v\to u$ 同时存在且相等;于是我们取 $u\to v\to\cdots\to u\to v$ 即可。
1 | #include<bits/stdc++.h> |
Educational Codeforces Round 105
http://xyfjason.github.io/blog-xcpc/2021/03/06/Educational-Codeforces-Round-105/