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

2021-09-10 14:03:19 字數 671 閱讀 5333

題目連線

題意:很明顯了。

思路:暴力搜尋+剪支 。

每新加進來乙個人,都與已經開設的教室裡面的人進行對比,如果找到乙個教室滿足,教室裡面所有的人都不和新加入的人認識,那麼就考慮將這個人加進來。再回溯。

最後,當所有教室都不滿足的時候,新增教室。

反思:dfs回溯有待提高

**:

#include using namespace std;

const int maxn=1e6+7;

int mp[110][110];

int room[110][110];//不**間的人數安排表

int cnt[110];//記錄每個房間人數

int n,m;

int ans;

void dfs(int x,int num)

int j;

for(j=0;j}

if(cntt==len)

}room[num][0]=x;

cnt[num]++;

dfs(x+1,num+1);

room[num][0]=0;

cnt[num]--;

}int main()

ans=n;

dfs(1,0);

cout

}

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

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

藍橋杯 歷屆試題 分考場 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 ...

歷屆試題 分考場 dfs 回溯

藍橋 分考場 題意及思路 就是為了防作弊,考場不能有互相認識的人,所以認識的都要分開 殘忍了點 題目資料量比較小,就是能不能進這個考場的問題,所以dfs跑一跑應該沒有太大的問題。t t!問題描述 n個人參加某項特殊考試。為了公平,要求任何兩個認識的人不能分在同乙個考場。求是少需要分幾個考場才能滿足條...