歷屆試題 分考場 dfs 回溯

2021-09-11 17:03:28 字數 907 閱讀 7809

藍橋 分考場

【題意及思路】:就是為了防作弊,考場不能有互相認識的人,所以認識的都要分開(殘忍了點)。

題目資料量比較小,就是能不能進這個考場的問題,所以dfs跑一跑應該沒有太大的問題。t_t!

問題描述

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

樣例輸出

ac**:

#include#include#includeusing namespace std;

int f[105][105],r[105][105];

int ro[105],ans,n;

void dfs(int x,int num)

int i,j,k,cot;

for( i=1;i<=num;i++)

if(cot==k)

} r[num+1][++ro[num+1]]=x;//如果前面的考場都放不進這個人,新開乙個房間

dfs(x+1,num+1);

ro[num+1]--;

}int main()

ans=0x3f3f3f;

dfs(1,0);

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

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...

歷屆試題 分考場 dfs

問題描述 n個人參加某項特殊考試。為了公平,要求任何兩個認識的人不能分在同乙個考場。求是少需要分幾個考場才能滿足條件。輸入格式 第一行,乙個整數n 1 public class 分考場 dfs 1 system.out.println num 為所有的學生編排考場 param id 學生的id pa...