有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時有最大值 否則沒有符合條件...