第16周 啊哈算法 深度优化搜索应用(最短路径算法)

来源:互联网 发布:漏洞提交平台 知乎 编辑:程序博客网 时间:2024/06/05 09:49

问题及代码:

/*求最短路径算法用途:可用于交通系统、营救最优路径 */ #include<stdio.h>int n,m,p,q,min=999999;int a[50][51],book[50][51];void dsf(int x,int y,int step) {   //下一步四个方向的数组   int next[4][2]={(0,1),                   (1,0),                   (0,-1),                   (-1,0)};      if(x==p && y==q)     {       if(step<min)        {          min=step;           return;         }      }     int k;   for(k=1;k<=4;k++)    {      x=x+next[k][0];//x一直在第一位,即0      y=y+next[k][1]; //y一直在第二位,即1      if(a[x][y]==0 && book[x][y]==0)//判断坐标是否为障碍物和标记       {         book[x][y]=1;         dsf(x,y,step+1);         book[x][y]=0;        }     return;    }} int main() {   int i,j,startx,starty;   for(i=0;i<n;i++)      for(j=0;j<m;j++)         scanf("%d %d",&n,&m);   scanf("%d %d %d %d",&startx,&starty,&p,&q);   dsf(startx,starty,0);   getchar();getchar();   return 0; }

0 0