我們先將這個地圖模型化,牆用#表示,這裡有兩種牆,一種是可以被炸彈炸掉的,另外一種是不可能被炸掉的。但是由於現在只有一枚炸彈,所以都用#表示,炸彈是不能穿牆的。敵人用g表示,空地用 . 表示,當然炸彈只能放在空地上。
測試資料:
13 13
#############
#gg.ggg#ggg.#
###.#g#g#g#g#
#…….#..g#
#g#.###.#g#g#
#gg.ggg.#.gg#
#g#.#g#.#.#.#
##g…g…..#
#g#.#g###.#g#
#…g#ggg.gg#
#g#.#g#g#.#g#
#gg.ggg#g.gg#
#############
此題可以用深度優先也可以用廣度優先
下面時深度優先的**:
#include
using namespace std;
int book[50][50] = ;
int next[4][2] = ,,,};
char a[50][50];
int n,m;//n為行 m為列
int x,y,startx,starty,tx,ty,maxx=-1,sign=1;
int getnum(int x,int y)
i++;
} i=x;
j=y;
//向右統計可以消滅敵人的人數
while(a[i][j] != '#')
j++;
}i=x;
j=y;
//向左統計可以消滅敵人的個數
while(a[i][j] != '#')
j--;
}i=x;
j=y;
//向上統計可以消滅敵人的個數
while(a[i][j] != '#')
i--;
}return
sum;
} void dfs(int x,int y)
for(int i=0;i<=3;i++)
tx = x+next[i][0];
ty = y+next[i][1];//右、左、下、上
//判斷是否圍牆或者已經走過
if(book[tx][ty] == 0 && a[tx][ty] == '.')
} cout
} }
dfs(startx,starty);
cout<
<1
<
<1
<
0;}
廣度優先的**:
#include
using namespace std;
int book[50][50]=;
char a[50][50];//用來儲存地圖
int next[4][2] = ,,,};
struct node;
int n,m;//n表示行 m表示列
struct node que[2501];
int x,y,tx,ty,flag,sign=1,head=1,tail=1,startx,starty,maxx=-1;
int getnum(int x,int y)
i++;
} i=x;
j=y;
//向右統計可以消滅敵人的人數
while(a[i][j] != '#')
j++;
}i=x;
j=y;
//向左統計可以消滅敵人的個數
while(a[i][j] != '#')
j--;
}i=x;
j=y;
//向上統計可以消滅敵人的個數
while(a[i][j] != '#')
i--;
}return
sum;
} int main()
} }
//把起始點放到佇列中,標記為已經走過的路徑
que[head].x = startx;
que[head].y = starty;
book[startx][starty] = 1;
tail++;
//當佇列不為空是進行迴圈
while(head//列舉四個方向
for(int i=0;i<=3;i++)
//判斷是否為平地或者曾經走過的路
if(book[tx][ty] == 0 && a[tx][ty] == '.')
tail++;
} }
head++;//注意這地方千萬不要忘記,當乙個點擴充套件結束後,必須要head++才能對後面的點進行擴充套件
} cout<
<1
<
<1
<
0;}
深度優先和廣度優先
在爬蟲系統中,待抓取url佇列是很重要的一部分,待抓取url佇列中的url以什麼樣的順序排隊列也是乙個很重要的問題,因為這涉及到先抓取哪個頁面,後抓取哪個頁面。而決定這些url排列順序的方法,叫做抓取策略。下面是常用的兩種策略 深度優先 廣度優先 注 scrapy預設採用的是深度優先演算法 這裡是深...
深度和廣度優先
深度優先演算法dfs depth first search 廣度優先演算法bfs breadth first search 又叫做層次遍歷,自上向下,自左向右逐層訪問結點,訪問完一層再訪問下一層,直到無結點。深度優先搜素演算法 不全部保留結點,占用空間少 有回溯操作 即有入棧 出棧操作 執行速度慢。...
深度優先和廣度優先區別
一 深度優先搜尋的特點是 1.深度優先搜尋法有遞迴以及非遞迴兩種設計方法。一般的,當搜尋深度較小 問題遞迴方式比較明顯時,用遞迴方法設計好,它可以使得程式結構更簡捷易懂。當資料量較大時,由於系統堆疊容量的限制,遞迴容易產生溢位,用非遞迴方法設計比較好。2.深度優先搜尋方法有廣義和狹義兩種理解。廣義的...