藍橋杯 歷屆試題 分考場(C )

2021-10-06 08:48:21 字數 608 閱讀 5876

採用dfs。在已知的狀態下,然後判斷下乙個學生是否可以安排到之前存在的教室,如果不可以的話,那麼就新開乙個教室。參考藍橋杯 - 歷屆試題 分考場(dfs),藍橋杯 歷屆試題 分考場 (dfs)。

#include.h>

using namespace std;

int n, min_kes;

int p[

102]

[102];

// vis[1][0]=2表示1考場的第1個學生是考生2

int vis[

102]

[102];

//表示關係,vis[i][j]=1表示i和j認識

void

dfs(int x,int kes)

for(int i=

1;i<=kes;i++)}

p[kes+1]

[0]=x;

//開闢乙個新的考場

dfs(x+

1,kes+1)

; p[kes+1]

[0]=

0;}int main()

dfs(1,

0); cout

}

藍橋杯 歷屆試題 分考場

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

藍橋杯 歷屆試題 分考場

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

藍橋杯 歷屆試題 分考場

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