時間限制: 1 sec 記憶體限制: 128 mb
題目描述
自習課就是划水課。
你和同桌在玩井字棋,你先手。突然老師進來了。
給定乙個局面,問它是否有可能下的出來。
若有可能,求出是否有贏家,若有,輸出贏家。
否則,輸出是否平局,或者下一步是誰的回合。
輸入有多組資料,第一行給出資料組數 t。每組資料有 3 行,每行 3 個字元。
若字元為」x」,表示這裡你下過,
若字元為」o」,表示這裡同桌下過。
若字元為」.」,表示這裡沒有人下過。
輸出每個資料輸出一行。
若不可能下的出來,輸出illegal situation。
若你贏了,輸出x wins,若同桌贏了,輸出o wins。
若已經下完了,且平局,輸出draw。
若下一步是你的回合,輸出x』s turn。
若下一步是同桌的回合,輸出o』s turn。
樣例輸入
5..
.xx...o
xo***o
oxo.o.
xo..o.
xoxox.
x.o***
ooo.
..
樣例輸出
o's turn
draw
illegal situation
x wins
illegal situation
提示
對於前 60% 的資料,不存在三個」x」或」o」連成一線的情況;
對於 100% 的資料,t≤100。
很驕傲的說,童年時候的我可是超會玩這個遊戲的,有的時候也會和同桌偷偷玩啊,那時候我的同桌和我做同桌做了四年,現在應該是乙個不錯的小伙了吧,現在雖然不太聯絡了,但是童年的記憶永遠刻骨銘心啊~
很抱歉,廢了好多話,回憶了一下自己的遙遠的童年。。。qwq
咳咳,回歸正題。
解題思路:
首先判斷非法的情況,接下來討論下棋順序、輸贏、平局就很簡單了。
非法的條件包括:
1.有兩個贏家;
2.所有的棋子數是奇數,而且此時x贏;
3.所有的棋子數是偶數,而且此時o贏;
4.x的數目與o的數目的差的絕對值大於1;
5.x的數目小於o的數目。
my code
#include
#define ll long long
//#define local
using
namespace std;
const
int n =
2e5+5;
const
int inf =
0x3f3f3f3f
;//1061109567
char s[5]
[5];
int t;
intmain()
}if(abs
(numx-numo)
>1||
(numx)for
(int i=
0; i<
3; i++)if
((win1&&win2)||(
(numx+numo)%2
==0&&win1)||(
(numo+numx)%2
==1&&win2))if
(win1&&
!win2)
if(win2&&
!win1)
if(numx+numo==9)
if(numx>numo)
printf
("o's turn\n");
else
printf
("x's turn\n");
}return0;
}
UPC(混合34)問題 G sunflower
標籤 圖論,生成樹 時間限制 1 sec 記憶體限制 128 mb 題目描述 小 n 經常去小 t 家的花園裡散步,小 t 家的花園有 n 個長的一樣的亭子和 m 條道路連線著亭子,但是小 t 的花園太過於亂了,小 n 作為乙個路痴經常進去了之後找不到出來的路,一直在環裡面繞圈。於是小 n 要讓小 ...
UPC(混合3)問題 F 種花
標籤 dfs 時間限制 1 sec 記憶體限制 128 mb 題目描述 在機房的生活是如此的寂寞,以至於以will為首的同志們只能夠天天上農場種菜來打發時間。msh日復一日地種著她的玫瑰,will則毫不疲倦地偷著他的花 儘管天天花被偷掉一半,msh始終沒有動搖她種花的決心。原來,乙個巨集偉計畫的藍圖...
VC與Matlab混合程式設計的快速實現 3 1
原創 vc與matlab混合程式設計的快速實現 3 1 發信站 bbs 水木清華站 mon may 19 21 30 19 2003 轉信 3 在vc 中使用matlab生成的動態鏈結庫 dll 為了能在vc 中使用上面生成的 dll,首先要對vc 的環境進行一些設定 1 設定include和lib...