資源限制
時間限制:1.0s 記憶體限制:256.0mb
問題描述
n個人參加某項特殊考試。
為了公平,要求任何兩個認識的人不能分在同乙個考場。
求是少需要分幾個考場才能滿足條件。
輸入格式
第一行,乙個整數n(1輸出格式
一行乙個整數,表示最少分幾個考場。
樣例輸入58
1 21 3
1 42 3
2 42 5
3 44 5
樣例輸出
樣例輸入510
1 21 3
1 41 5
2 32 4
2 53 4
3 54 5
樣例輸出
#include#include#includeusing namespace std;
int gra[200][200]; // 記錄兩個人之間的關係,gra[i][j] == 1 代表 i 和 j 認識
int vis[200][200]; // vis[i][j] == 1 代表第 i 間教室的第 j 人在這間教室。
int n,m;
int c[200]; // c[i] 表示第 i 個房間的人數
int ans; // 最終答案
int flag; // 在 dfs 中用於判斷當前 s 是否能分配給當前教室
void dfs(int s, int tot, int num) // s 為當前的人,tot 為當前一共分配的教室,num 為當前分配到了多少人了
if(num == n)
for(int i = 1; i <= tot; i ++)
}if(flag)
}vis[tot+1][++c[tot+1]] = s;
dfs(s+1,tot+1,num+1);
--c[tot+1];
}int main()
ans = n;
dfs(1,0,0);
printf("%d\n",ans);
return 0;
}
歷屆試題 分考場(DFS,染色問題)
歷屆試題 分考場 時間限制 1.0s 記憶體限制 256.0mb 問題描述 n個人參加某項特殊考試。為了公平,要求任何兩個認識的人不能分在同乙個考場。求是少需要分幾個考場才能滿足條件。輸入格式 第一行,乙個整數n 1樣例輸出 4樣例輸入 5 101 2 1 31 4 1 52 3 2 42 5 3 ...
歷屆試題 分考場 dfs
問題描述 n個人參加某項特殊考試。為了公平,要求任何兩個認識的人不能分在同乙個考場。求是少需要分幾個考場才能滿足條件。輸入格式 第一行,乙個整數n 1 public class 分考場 dfs 1 system.out.println num 為所有的學生編排考場 param id 學生的id pa...
藍橋杯 分考場(dfs)
dfs求解 思路每次判斷輸入的人是否可以和前面的組隊 問題描述 n個人參加某項特殊考試。為了公平,要求任何兩個認識的人不能分在同乙個考場。求是少需要分幾個考場才能滿足條件。輸入格式 第一行,乙個整數n 1 ans return if p n 1 for int i 1 i kans i 判斷完前面已...