UPC(混合31補題)問題 D 自習課

2021-10-07 01:30:37 字數 1905 閱讀 2932

時間限制: 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...