题意
D社长和H长老有一天闲着无聊,决定开始玩一个简单游戏。
开始有一个无向图,没有自环和重边,由D社长先行,D社长先任意选择一条边,并把它删除,H长老接着选择上一条边的相邻边把它删除,然后又是D选择上一条边的相邻边把它删除(两条边相邻指他们具有公共点)。如果谁无法操作了,谁就输了。
现在给你这个图,在D和H都是最佳策略时,D是否能够胜出。
分值 | 子任务依赖 | ||
---|---|---|---|
1 | 10 | 2 ≤ n ≤ 100 , 1 ≤ m ≤ 100 2 \leq n \leq 100, 1 \leq m \leq 100 2≤n≤100,1≤m≤100 | |
2 | 25 | 2 ≤ n ≤ 2000 , 1 ≤ m ≤ 2000 2 \leq n \leq 2000, 1 \leq m \leq 2000 2≤n≤2000,1≤m≤2000 | 1 |
3 | 65 | 2 ≤ n ≤ 1 0 4 , 1 ≤ m ≤ 1 0 4 2 \leq n \leq 10^4, 1 \leq m \leq 10^4 2≤n≤104,1≤m≤104 | 2 |
题解
对于博弈问题,没有什么思路的时候,先从最特殊的开始考虑:首先考虑一个连通块,没有边则先手必败,只有一条边则先手必胜。
猜想这是否只与边数的奇偶性有关,即奇数条必胜,偶数条必败。
考虑归纳证明,对于边数为大于1的奇数,设边数小于它的情况都符合,那么任意删掉一条边后剩下偶数条(如果连通块不是树的话任意删掉一条非桥边即可,否则删掉一个度数为1的点),本来就必败,再加上只能删相邻边就还是必败,于是必胜;而对于偶数,任意删掉一条后都是必胜所以必败。故只需判断是否有边数为奇数的连通块即可。