題意:有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...