poj 3256 dfs水(牛要聚會)

2021-07-04 04:09:22 字數 594 閱讀 1585

題意:有k頭牛,有n個牧地,這n個牧地有m條單項路,求如果這k頭牛(初始都在乙個牧地上)要聚餐,可以去的地方有多少個,也就是每頭牛都能到的地方有多少個?

思路:從每頭牛所在位置進行dfs,找到能夠到達的所有頂點。最後掃一遍頂點,看看哪個的數量等於牛數k即可。

#include #include #include #include #include #include using namespace std;

#define inf 0x3fffffff

#define n 1005

struct edgee[10005];

int num[n],flag[n],s[105],n,m,k,top,first[n];

void add(int x,int y)

void dfs(int x)

int main()

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

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

if(num[i]==k)

res++;

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

return 0;

}

DFS特訓(POJ2816)紅與黑,DFS解法

解題思路 說白了就是一題求連通塊的題目,這裡運用深度優先搜尋,遍歷每乙個合法的位置,每到乙個位置全域性變數ans都會自加1。這裡一定要注意判別條件,越界的陣列和根據題目要求為 的陣列要素直接跳過即可。遍歷完全後列印全域性變數的數值。注意題目中要求尋找起點的要求。總時間限制 1000ms 記憶體限制 ...

POJ 棋盤問題(DFS)

在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一行或者同一列,請程式設計求解對於給定形狀和大小的棋盤,擺放k個棋子的所有可行的擺放方案c。input 輸入含有多組測試資料。每組資料的第一行是兩個正整數,n k,用乙個空格隔開,表示了將...

POJ2488 騎士遊歷 DFS

題目意思是在乙個國際棋盤裡,判斷馬能否不重複的走過所有格,並記錄下其中按字典序排列的第一種路徑。dfs方法解決,由於是字典順序,所以搜尋方向要嚴格規定 本題錯了幾次,原因是memset沒有使用正確,此函式的第三個引數是按位元組的單位,所以陣列長度還要乘以sizeof type 160k 63ms c...