题解 P1917 【三子棋Ⅱ】
这题呢,是一道水题,不过为什么没人做???
读入9(3*3)个字符,每个有3种情况:
‘-‘ 表示该位置没有棋子;
‘O’ 表示该位置为小a的棋子;
‘X’ 表示该位置为uim的棋子。
那么,我就在线做,读入,如果这个地方有子,就检查,如果是’X’,就看它所在行、列相差1,小a就赢了。
看这个图:
1 | -K- |
其中K为行、列相差1的地方,如果这里有子,且总子数<4,小a先下,那么中心是小a(第一个子),4个K中的一个位置为uim的子,那么只要小a下在4脚处,那么他就赢了(自己想想)
所以只要4个K中的任意一个位置有uim的子,uim就输了。
为什么呢?
取一种情况:
1 | - X - |
会演变为:
1 | - X O |
uim会这样堵:
1 | - X O |
这时,小a只需在这里下:
1 | - X O |
很明显,无论uim怎么下,小a都赢了。
接下来几种情况,就像刚才的旋转,其结果都一样。
所以我的方法是对的。
不然输出不知道。
话说我忍不住要吐槽题目:不知道用英文说应该是”I don’t know”,然而。kkk告诉我们:英语不要主语,don’t的写法是dont??还有说好的小a蠢呢??数据竟没有一个是uim赢。
好了不说废话了,上代码。
1 |
|