HDU2208唉,可愛的小朋友 (DFS)

2021-10-04 05:20:59 字數 1301 閱讀 3366

input

資料有多個case,每個case先輸入兩個值n(1<=n<=10)和m(1<=m<=10),表示有n個小朋友(從0到n-1標號),和m個小皮球。接著有n行,第i行先輸入乙個k(0<=koutput

對於每個case,如果老師可以上好課,輸出yes,否則no。

sample input

3 22 1 2

2 2 0

2 0 1

sample output

yes

這道題在我看來還是有點難的,首先我要把他的資料結構當做是無向圖,因為a喜歡b就等於b喜歡a。

其實就是判斷無向圖的連通個數是否小於皮球的個數吧,後來發現我這個思路寫不下去,所以就參考了別人的思路.

#include

#include

#include

#include

#include

using namespace std;

//有m個小皮球和n個小朋友,小朋友是0~n-1號。

//1.把每個小皮球看成一組,通過小皮球來進行遞迴遍歷。

//2.假設我們成功地把v號小朋友放進1號小皮球組,

//然後再進入一次dfs,把v+1號小朋友放進1號小皮球組,

//如果v+1號小朋友不能放進1號小皮球組,就把v+1號小朋友放進2號小皮球組,

//……,如果前面都失敗了,就退回來,把v號小朋友放進2號小皮球組,

//直到如果找到了乙個滿足的方式,就返回true,否則如果所有情況都不成立,就返回false。

int n,m;

//n個小朋友,m個球

bool map[

100]

[100];

//判斷兩個小朋友之間是否有連線

int visted[

100]

;//小朋友進的組號

int i;

bool check

(int x,

int zu)

return false;

}bool dfs

(int v)}}

return false;

}int

main()

}//開始遍歷if(

dfs(0)

)printf

("yes\n");

else

printf

("no\n");

}}

HDU2208唉,可愛的小朋友

sample input 3 22 1 2 2 2 0 2 0 1 sample output yes具體思路就是 有m個小皮球和n個小朋友,小朋友是0 n 1號。1.把每個小皮球看成一組,通過小皮球來進行遞迴遍歷。2.假設我們成功地把v號小朋友放進1號小皮球組,然後再進入一次dfs,把v 1號小朋...

暴搜 hdu 2208 唉,可愛的小朋友

題目大意 有n個小朋友,之間有相互喜歡的關係,如果a喜歡b的話,輸入時保證b一定喜歡a。現在有m個小氣球,問能否分成不超過m組,每組不存在有兩個小朋友互相不喜歡。解題思路 因為不具有傳遞性,所以不屬於雙聯通。又n很小,所以直接暴搜。fa i j表示i是屬於j為根的集合。不能用貪心,先把乙個小朋友的滿...

永中Office與可愛的小無賴

通常,無賴是指那些放刁撒潑 蠻不講理的人。圍繞永中 office 有一些大無賴與小無賴。此話當真?我等著微軟起訴我,貓膩就在我手上。袁萌 5 月 31 日 執行中的微軟 office 究竟占用多大的記憶體空間?看起來,這是乙個很簡單的問題,一鍵即可查明。實則不然。舉例來說,微軟 office 201...