藍橋杯 歷屆試題 分考場 DFS

2021-09-10 14:57:55 字數 763 閱讀 7077

時間限制: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 4

1 52 3

2 42 5

3 43 5

4 5

4

5

資料比較小,直接dfs就行了。在已知的狀態下,然後去判斷下乙個學生是否可以在之前存在的教室,如果不可以的話,那麼就新開乙個教室。

#include #include int n, min_kes, p[102][102], map[102][102];

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);

printf("%d\n", min_kes);

return 0;

}

藍橋杯 歷屆試題 分考場 (dfs回溯)

題目連線 題意 很明顯了。思路 暴力搜尋 剪支 每新加進來乙個人,都與已經開設的教室裡面的人進行對比,如果找到乙個教室滿足,教室裡面所有的人都不和新加入的人認識,那麼就考慮將這個人加進來。再回溯。最後,當所有教室都不滿足的時候,新增教室。反思 dfs回溯有待提高 include using name...

藍橋杯 試題 歷屆試題 分考場 dfs 回溯

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

藍橋杯 歷屆試題 分考場

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