深度优先搜索

来源:互联网 发布:mysql insert into 慢 编辑:程序博客网 时间:2024/05/23 11:51

思想

#include <iostream>using namespace std;int sign[10][10];int min = 99;void run(int a[5][4],int x, int y, int p, int q,int step){int next[4][2] ={{0, 1},{1, 0},{0, -1},{-1, 0}};int tx, ty;if(x == p && y == q){if( step < min )min = step;return ;}for (int k = 0; k <= 3; k++ ){tx = x + next[k][0];ty = y + next[k][1];if( tx < 0 || tx > 5  || ty < 0 || ty > 4 )continue;if(a[tx][ty] == 0 && sign[tx][ty] ==0){sign[tx][ty] = 1;run(a,tx, ty, p, q, step+1);sign[tx][ty] = 0;}}return;}int main(){int a[5][4] ={{0, 0, 1, 0},{0, 0, 0, 0},{0, 0, 1, 0},{0, 1, 0, 0},{0, 0, 0, 1}};int step=0;int startx = 0;int starty = 0;int endx = 3;int endy = 2;sign[0][0] = 1;run(a,startx, starty, endx, endy, step);cout << min<<endl;;return 0;}


0 0
原创粉丝点击