由前幾天寫的acm**改了下,昨天下午寫的但再儲存最短路徑時有點問題,剛把最短路徑儲存改好了.加了個4方向還是8方向,在障礙物邊上是否拐角繞行.這裡面和//a* 障礙拐角 4方向8方向
#include
#include
#include
#include
using
namespace std;
int r,c;//地圖行列
int sr,sc,dr,dc;//起點 終點
int map[100][100];//0是障礙1是可行
bool turncorner=true;//是否繞過拐角
bool eight=true;//4方向和8方向擴充套件
struct node
;vectoropenlist;
vectorcloselist;
vectorbestlist;
node child;
int abs(int a,int b)
bool dayu(node & l,node & r)
bool check(node value)
return
false;
}void init(node &start)
openlist.push_back(start);
if (!closelist.empty())
}void bestpath(node &best)
while (mudi.parent>-1)
}bool reach(int r,int c)
void generate(node &node,int r,int c)
}void kuozhan(node &node)
;if (reach(node.r-1,node.c))// 上
else
if (reach(node.r,node.c+1))//右
else
if (reach(node.r+1,node.c))// 下
else
if (reach(node.r,node.c-1))// 左
else
if (!eight)
if (!turncorner)
if (flag[0]&&reach(node.r-1,node.c-1))// 左上
if (flag[1]&&reach(node.r-1,node.c+1))//右上
if (flag[2]&&reach(node.r+1,node.c+1))// 右下
if (flag[3]&&reach(node.r+1,node.c-1))// 左下
}void findpath(int sr,int sc,int dr,int dc)
kuozhan(best);
}//沒路徑
cout<<"no way!/n";
}void showpath()
for (i=0;i
cout<}
}int main()
cin>>sr>>sc>>dr>>dc;
findpath(sr,sc,dr,dc);
showpath();
return 0;
}輸入:
10 10
1 1 1 1 1 0 0 0 0 0
1 2 0 0 1 1 1 1 1 0
1 1 1 0 1 0 0 0 1 1
0 0 1 0 1 1 1 0 1 1
1 1 1 0 0 0 0 1 1 1
1 1 0 0 1 1 1 1 1 1
1 1 1 0 1 1 1 0 0 0
0 0 1 0 0 0 2 0 1 1
1 1 1 1 1 0 0 0 1 1
1 1 1 1 1 1 1 1 1 1
1 1 7 6
輸出:17
1 8 8 8 8 0 0 0 0 0
1 2 0 0 8 8 8 8 8 0
1 1 1 0 1 0 0 0 8 1
0 0 1 0 1 1 1 0 8 1
1 1 1 0 0 0 0 8 8 1
1 1 0 0 1 1 8 8 1 1
1 1 1 0 1 1 8 0 0 0
0 0 1 0 0 0 8 0 1 1
1 1 1 1 1 0 0 0 1 1
1 1 1 1 1 1 1 1 1 1
初步實現GoQtTemplate
ifndef mainwindow h define mainwindow h include 新新增 include include include include include include 設定採集資料的間隔時間using namespace cv helper函式qpixmap mat2...
redux的初步實現
redux與vuex一致,在這裡由store index.js定義需求,通過dispatch將需求發給reducer,具體什麼時候發,由頁面 html vue jsx 來觸發 react與vue一樣,都存在父傳子 子傳父 兄弟元件之間的傳值,單純的頁面 之間傳值的實現方式需要掌握是肯定的,比如 父傳...
線性鍊錶初步實現
對於線性鍊錶的個人理解 鍊錶就是把乙個個節點連線在一起就成了鍊錶。書上說它包含指標域和資料域。我先隨隨便便寫乙個小煉表。struct nodea,b,c 三個結點然後在主函式裡面對這三個進行初始化 現在開始真正開始建立鍊錶了 帶頭節點 include h using namespace std st...