bnuoj 1068 比賽安排

2021-06-21 14:14:54 字數 1182 閱讀 7392

time limit: 1000ms

case time limit: 1000ms

memory limit: 65536kb

1、每個人每天最多只能參加一場比賽,可以不參加。

2、在大賽結束後,任意兩人間都恰好進行了一場對決。

由於時間有限,我們希望比賽天數盡可能少,請聰明的你幫忙給出對陣方案。

輸入第一行:乙個整數t ≤ 50表示測試資料的組數。

每組資料一行包含乙個整數2 < n ≤ 100,表明有n個隊員參加比賽,且編號為1——n。

具體輸出格式請參照樣例。每行末尾不要輸出多餘的空格。

如果有多種安排方法,輸出任意乙個即可。

每組答案後面保留乙個空行。 3

41vs2

2vs3

3vs1

31vs2 3vs4

1vs3 2vs4

1vs4 2vs3

這是今天下午比賽時的一道題,糾結了很長時間,還好最後做出來了。剛開始我試著列舉全排列,每生成乙個排列就判斷一次是否符合條件,符合條件就輸出。但是我發現當n>10的時候就應經很慢了,如果這樣寫,肯定會超時。然後就想其他方法。最後想到迴圈陣列,讓陣列元素迴圈,比排列快多了。要注意的是n的奇偶性要分開討論。

#include#include#includeusing namespace std;

int a[105];

int main()

else

printf(" %dvs%d",a[j], a[n-1-j]);

}printf("\n");

int tmp = a[1]; //固定第乙個元素不變,只讓後面的元素變換

for(j = 1; j < n-1; j++)

a[j] = a[j+1];

a[n-1] = tmp;

}printf("\n");

}else

else

printf(" %dvs%d",a[j], a[n-1-j]);

}printf("\n");

int tmp = a[0];

for(j = 0; j < n-1; j++)

a[j] = a[j+1];

a[n-1] = tmp;

}printf("\n");}}

return 0;

}

BNU1068 比賽安排

1 每個人每天最多只能參加一場比賽,可以不參加。2 在大賽結束後,任意兩人間都恰好進行了一場對決。由於時間有限,我們希望比賽天數盡可能少,請聰明的你幫忙給出對陣方案。輸入第一行 乙個整數t 50表示測試資料的組數。每組資料一行包含乙個整數2 n 100,表明有n個隊員參加比賽,且編號為1 n。具體輸...

比賽時間安排

內容僅供參考,請以實際為準 月份比賽備註4 河南省物聯網設計大賽 報名 4.1 5.15 5網路技術挑戰賽 中國工程機械人大賽暨國際公開賽 robowork 5.18 報名 5.20 6河南省物聯網設計大賽 高校人工智慧創意賽 中國大學生計算機設計大賽 省賽報名 6.26省賽7 全國大學生先進成圖技...

演算法訓練 比賽安排

演算法訓練 比賽安排 時間限制 1.0s 記憶體限制 512.0mb 問題描述 設有有2 n n 6 個球隊進行單迴圈比賽,計畫在2 n 1天內完成,每個隊每天進行一場比賽。設計乙個比賽的安排,使在2 n 1天內每個隊都與不同的對手比賽。輸入格式 輸入檔案matchplan.in共一行,輸入n的數值...