//廣搜
#include #include #include struct node;
struct node queue[20];//佇列實現bfs
int head=0;
int tail=0;
char map[21][21];//存圖
int book[21][21];//標記走過的點
int n;//圖的規模
int max=-1;//消滅敵人最多的數量
int xmax,ymax;//消滅敵人最多數量的座標
int next[4][2]=,,,};
int getsum(int x,int y)//得到此點放炸彈消滅的敵人數
//向下統計
i=x+1;
j=y;
while(map[i][j]!='#')
//向左統計
i=x;
j=y-1;
while(map[i][j]!='#')
//向右統計
i=x;
j=y+1;
while(map[i][j]!='#')
return sum;
}void bfs(int x,int y)
tail++;}}
head++;
bfs(queue[head].x,queue[head].y);
}int main()
;char map[21][21];//存圖
int book[21][21];//標記走過的點
int n;//圖的規模
int next[4][2]=,,,};
int max=-1;//消滅敵人最多的數量
int xmax,ymax;//消滅敵人最多數量的座標
int getsum(int x,int y)//得到此點放炸彈消滅的敵人數
//向下統計
i=x+1;
j=y;
while(map[i][j]!='#')
//向左統計
i=x;
j=y-1;
while(map[i][j]!='#')
//向右統計
i=x;
j=y+1;
while(map[i][j]!='#')
return sum;
}void dfs(int x,int y)
dfs(xnext,ynext);
//book[xnext][ynext]=0; //深搜不一定有此句,根據需求定}}
return;
}int main()
《啊哈!演算法》第4章 萬能的搜尋
第5節 寶島探險 利用廣度優先搜尋實現 其中可以不用開闢visit變數,直接用將本身的值改為 1,然後判斷即可 注意輸入資料時周圍加了一層 1,作為邊界 廣度優先搜尋 利用深度優先搜尋實現,注意下面的方法是將搜尋到的點著成 1的顏色 深度優先搜尋 注意如果n和m比較大的話,建議用廣度優先搜尋,由於深...
DFS搜尋基本模型(具體模擬過程見《啊哈演算法》)
問題 輸入乙個數字n,輸出1 n的全排列。思路 如果n比較小的話 像1,2,3這種 直接用for迴圈就好了,但是迴圈層越多,時間複雜度也越大,所以這個時候輸入的n大了肯定超時。用新的方法 dfs 比如要輸出3的全排列 你現在手裡有3張撲克牌,分別編號1 2 3,要將這三張撲克牌分別放到三個箱子裡,箱...
貪心演算法應用之渴嬰問題
渴嬰問題 有乙個非常渴的 聰明的小嬰兒,她可能得到的東西包括一杯水 一桶牛奶 多罐不同種類的果汁 許多不同的裝在瓶子或罐子中的蘇打水,即嬰兒可得到n種不同的飲料。根據以前關於這n種飲料的不同體驗,此嬰兒知道這其中某些飲料更合自己的胃口,因此,嬰兒採取如下方法為每一種飲料賦予乙個滿意度值 飲用1盎司第...