大家一起做訓練 第一場 B Tournament

2022-04-28 12:06:29 字數 1245 閱讀 1555

有n個人比賽,兩兩之間都有一場比賽,一共 n * (n - 1) / 2 場比賽。每場比賽的記錄方式是 a b,表示在a和b的比賽中,a勝出,b失敗。

經過研究發現,輸贏有傳遞性,例如:a贏了b,b贏了c,那麼a一定會贏c。

現在,比賽記錄發現丟了一場,請輸出這一場的比賽記錄。輸出可能的結果中的乙個就ok。

直接暴力可做。首先,利用乙個二維陣列,記錄兩人是否比賽。得到了丟失了一場比賽的兩位選手a, b之後,按照輸贏的傳遞性直接找有沒有出現乙個人c。使得 a 贏了 c, c 贏了 b 。有就輸出a b,沒有就b a。

附ac**:

#include

2:

#include

3:

#include

4:

#include

5:

#include

6:

#include

7:

#include

8:

#include

9:
10:

using

namespace std;

11:
12:

struct r

13: ;
16:
17:

int main()

18:
30:         r res;
31:

bool flag = 1;

32:

for (int i = 1; i <= n && flag; i++)

33:
43:             }
44:         }
45:         flag = 1;
46:

for (int i = 1; i <= n && flag; i++)

47:
53:         }
54:

if (flag)

55:             printf("%d %d\n", res.los, res.win);
56:     }
57:

return 0;

58: }

暑假訓練第一場C

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

暑假訓練第一場D

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

杭電多校訓練第一場

第一題 注意 題目中的x n代表的意思是n能被x整除。題目的意思是 給你乙個整數n,尋找x,y,z,使得x y z n並且x n,y n,z n,求xyz的最大值。可以證明,如果n是3的倍數,當x y z n 3時,有最大值 如果n是4的倍數,當x y n 4,z n 2時有最大值 否則沒有符合條件...