暑假訓練第一場C

2021-08-21 09:58:57 字數 1013 閱讀 6530

題目:

小的時候大家一定玩過「井」字棋吧。也就是在九宮格中,只要任意行、列,或者任意連續對角線上面出現三個相同的,就能獲勝。現在小明和小花也在玩三子棋,但是他們不是在九宮格裡,而是在3×4的格仔裡面。現在小明先下,但是他知道小花這個人很聰明,他想知道第一步下在哪乙個地方最合適,你能幫幫他嗎?

input 第一行輸入乙個整數t,表示資料組數(1 第二行輸入兩個整數x,y,表示3×4格仔裡面的乙個座標(x,y)(1<=x<=3,1<=y<=4); output 每組資料輸出最後小明輸贏的結果,如果小明一定能贏,第一行輸出「win」,第二行輸出小明所需要花的最少步數;如果小明跟小花只能打成平手,第一行輸出「equal」,第二行輸出數字0;如果小明不能贏也不能跟小花打成平手,第一行輸出「lose」,第二行輸出小花贏小明所需要花的最少步數。 sample input

2

2 12 4

sample output
equal

0equal

0

思路:這個題寫之前看著也有點蒙,後來自己畫了個棋盤之後發現是相互對稱的。即(1,1)(4,1)(1,3)(3,1)這樣四個位置起手是沒區別的。別的位置也是同理。原始碼中標誌(1,1)(1,2) (2,1) (2,2)分別為1 2 3 4。

即大致為

1 3 3 1

2 4 4 2

1 3 3 1

最小步數的演算法是我自己畫了個棋盤發現存在這樣的情況就肯定會勝利,所以對手足夠聰明的情況下回盡可能不讓形成這種情況,所以在1位置是會花費6步,3或4花費4步,2會平局,所以建議自己動手畫一下試試看。

原始碼:#include

using namespace std;

int main()

;int n,x,y;

cin >> n;

for (int i = 0; i < n; i++)

return 0;

}

暑假訓練第一場D

題目 s0.n 1是乙個長度為n的字串,定義旋轉函式left s s1 n 1 s0.比如s abcd left s bcda 乙個串是對串當且僅當這個串長度為偶數,前半段和後半段一樣。比如 abcabc 是對串,aabbcc 則不是。現在問題是給定乙個字串,判斷他是否可以由乙個對串旋轉任意次得到。...

19級暑假第一場訓練賽

題目出自 codeforces round 547 div.3 includeusing namespace std typedef long long ll ll n,m bool flag int cnt 資料不大,暴力深搜 void dfs int now,int step if now m ...

牛客 2018多校訓練 暑假第一場

a 題意 對於矩陣 n,m 每個位置的元素 其右 下的元素。思路 比賽完全想錯思路,賽後看題解,終於摸懂,就是轉換思路,0,1之間可用一條線分隔開,1,2之間也可以用一條直線分隔開,而每條直線,從起點到終點,一共需要經過 n m 條邊,即 n m 次選擇行方向還是列方向,一定要選擇m次列方向,即c ...