藍橋杯 歷屆試題 分考場

2021-08-19 02:08:52 字數 1061 閱讀 3934

問題描述

n個人參加某項特殊考試。

為了公平,要求任何兩個認識的人不能分在同乙個考場。

求是少需要分幾個考場才能滿足條件。

輸入格式

第一行,乙個整數n(1輸出格式

一行乙個整數,表示最少分幾個考場。

樣例輸入5

8 1 2

1 3

1 4

2 3

2 4

2 5

3 4

4 5樣例輸出

4樣例輸入5

10 1 2

1 3

1 4

1 5

2 3

2 4

2 5

3 4

3 5

4 5樣例輸出

5思路:一開始看以為是個並查集的題,高高興興打出來了,樣例過不去,後來發現裡面沒有說關係具有傳遞性,果然沒這麼容易,其實這道題用深搜,設乙個二維陣列表示第i個考場的第j個學生的編號,因為資料較小,就直接開二維陣列不用vector了,還要設定乙個陣列表示第i個考場有幾個學生,然後直接暴力深搜+回溯。

**:#include

using namespace std;

const int maxn = 150;

bool vis[maxn][maxn];

int stu[maxn][maxn];

int num[maxn];

int n, m, ans;

void init()

void dfs(int id, int room)

if(id > n)

for(int i = 1;i <= room;i++)

if(cnt == num[i])

}stu[room + 1][++num[room + 1]] = id;

dfs(id + 1,room + 1);

--num[room + 1];

}int main()

dfs(1, 0);

cout << ans << endl;

}return 0;

}

藍橋杯 歷屆試題 分考場

問題描述 n個人參加某項特殊考試。為了公平,要求任何兩個認識的人不能分在同乙個考場。求是少需要分幾個考場才能滿足條件。輸入格式 第一行,乙個整數n 1輸出格式 一行乙個整數,表示最少分幾個考場。樣例輸入58 1 21 3 1 42 3 2 42 5 3 44 5 樣例輸出 樣例輸入510 1 21 ...

藍橋杯 歷屆試題 分考場

問題描述 n個人參加某項特殊考試。為了公平,要求任何兩個認識的人不能分在同乙個考場。求是少需要分幾個考場才能滿足條件。輸入格式 第一行,乙個整數n 1思路 我的一開始的思路是貪心,保證目前是最優的,但是內心一直覺得很不合理所以就沒有去實現這個 後來我終於明白不對在哪了,貪心只能保證區域性最優,全域性...

藍橋杯 歷屆試題 分考場 DFS

時間限制 1.0s 記憶體限制 256.0mb n個人參加某項特殊考試。為了公平,要求任何兩個認識的人不能分在同乙個考場。求是少需要分幾個考場才能滿足條件。第一行,乙個整數n 1一行乙個整數,表示最少分幾個考場。5 81 2 1 31 4 2 32 4 2 53 4 4 55 101 2 1 31 ...