Rank | Solved | A | B | C | D | E | F | G | H | I | J | K |
---|---|---|---|---|---|---|---|---|---|---|---|---|
50/169 | 6/11 | O | O | O | O | Ø | . | O | . | Ø | Ø | O |
O
: 当场通过
Ø
: 赛后通过
.
: 尚未通过
A Digits Are Not Just Characters
solved by chelly
chelly’s solution
B Arithmetic Progressions
solved by chelly
chelly’s solution
C Emergency Evacuation
solved by chelly
chelly’s solution
D Shortest Common Non-Subsequence
solved by chelly
chelly’s solution
E Eulerian Flight Tour
upsolved by chelly
chelly’s solution
先通过高斯消元/对补图生成树dfs将所有点的度数补成偶数,然后考虑将它们连成一个连通块。
- 若连通块个数=1,问题解决了。
- 若连通块个数>=3,显然可以连成一个环。
- 若连通块个数=2,
- 若两个连通块内的点个数都>=2,显然可以取4个点连成环。
- 若有一个孤立点,尝试在另一个连通块中找到一条“后来补上的边”,或者“现在不存在的边”,连其对应的两个点,并改变这两个点之间边的状态即可。
F Fair Chocolate-Cutting
solved by feynman1999
feynman1999’s solution:
G What Goes Up Must Come Down
solved by chelly
chelly’s solution
H Four-Coloring
solved by feynman1999
feynman1999’s solution
水题
I Ranks
upsolved by chelly
chelly’s solution
对于每一行单独考虑,假设已经求出了除了这行以外的所有行的线性基,那么可以快速判断这个行的每个列翻转后的结果。
现在的问题是“如何求除掉某一行外的线性基”,很遗憾由于线性空间维数太大,在这里维护前后缀线性基再合并是行不通的。
可以通过线段树分治的手段来完成这个目的。
时间复杂度