迴圈日程表問題

2021-08-28 11:27:54 字數 787 閱讀 6692

今天做一道相對簡單的題。。

1.n=2^k個運動員進行網球迴圈賽,需要設計比賽日程表。每個選手必須與其他n-1個選手各比賽一次;每個選手每天只能比賽一次;迴圈賽一共進行n-1天。按此要求設計一張比賽日程表,該錶有n行,n-1列,第i行j列為第i個選手第j天遇到的選手。

解題思路:

利用分治原理 從大的 日程表一直分;

1    2  3  4      5  6  7  8

2    1  4  3      6  5  8  7

3    4  1  2      7  8  5  6

4    3  2  1      8  7  6  5

5    6  7  8      1  2  3  4

6    5  8  7      2  1  4  3

7    8  5  6      3  4  1  2

8    7  6  5      4  3  2  1

右下角等於左上角,右上角等於左下角等於左上角的加上最大那個數。

寫程式是需要注意  位運算的優先順序比加減法還要低 一定要注意 不然會錯。。。。。

用vector 寫練習 vector 。

源程式:

#include #include #include #include using namespace std;

const int maxn = 1<<10;

int k;

vector> schd(maxn);

void print_schd()

迴圈日程表問題

迴圈日程表問題。n 2k個運動員進行網球迴圈賽,需要設計比賽日程表。每個選手必須與其他n 1 個選手各賽一次 每個選手一天只能賽一次 迴圈賽一共進行n 1 天。按此要求設計一張比賽日程表,該錶有 n 行和n 1列,第 i 行 j列為第 i 個選手第 j天遇到的選手。該問題和棋盤問題很像,都可以通過遞...

迴圈日程表

問題 設有n 2k個運動員要進行網球迴圈賽。現要設計乙個滿足以下要求的比賽日程表 每個選手必須與其他n 1個選手各賽一次,每個選手一天只能賽一次,迴圈賽一共進行n 1天。分析分治思想,k的日程表是通過k 1的日程表通過相加得到 include include using namespace std ...

迴圈比賽日程表

總時間限制 1000ms 記憶體限制 65535kb 描述 設有n個選手進行迴圈比賽,其中n 2 m,要求每名選手要與其他n 1名選手都賽一次,每名選手每天比賽一次,迴圈賽共進行n 1天,要求每天沒有選手輪空。輸入m m 10 輸出 形式的比賽安排表 數字之間以乙個空格分開 樣例輸入 3 樣例輸出 ...