Rank | Solved | A | B | C | D | E | F | G | H | I | J | k |
---|---|---|---|---|---|---|---|---|---|---|---|---|
89/1369 | 8/11 | Ø | O | O | O | . | O | O | O | Ø | O | O |
O
: 当场通过
Ø
: 赛后通过
.
: 尚未通过
A Maomao’s candy
B Dudu’s maze
C Dawn-K’s water
D Fish eating fruit
E Gugugu’s upgrade schemes
F Honk’s pool
G Special necklace
H Texas hold’em Poker
I Self-game
upsolved by chelly
chelly’s solution
首先局面数量很少,所以可以将局面抽象成点。两个局面可以通过一次操作转换,我们就给它们连一条无向边。容易发现这个图是二分图。
任务就是固定一个起点,先后手轮流走,不能走过已经走过的点,谁不能走就谁输了。
这是个经典的二分图上的博弈问题。如果一个点是所有最大匹配中的必需点,那么这个点就是先手必胜点,否则是先手必败点。
那么如何快速求出所有的最大匹配必需点呢?(显然一个点一个点枚举是会TLE的)
我们可以先求出一组最大匹配,对于那些不在匹配上的点,一定不是必需点,在最大匹配上的点是候选点。我们从那些非必需点出发,按照虚边——实边——虚边——实边去dfs,遍历到的同侧点都是非必需点。
J Ghh Matin
K Guanguan’s Happy water
Dirty Replay
I题:RE了2发,因为dfs的时候没有记录是否遍历过/