#include <stdio.h>
#include <stdlib.h>
#define INF 100000
int map[100][100];//存图
int book[100];//标记
int stack[100];//当前路径
int top=-1;
int step[100];//最短路径
int tops=-1;
int n,m;//点数和边数
int start,end;//起点和终点
int mindis=INF;
void dfs(int loc,int disnow)
{
if(disnow>mindis)
return;
if(loc==end){
if(disnow<mindis){
mindis=disnow;
for(int i=0;i<=top;i++)
step[i]=stack[i];
tops=top;
}
return;
}
for(int i=1;i<=n;i++){
if(book[i]==0&&map[loc][i]<INF){
book[i]=1;
stack[++top]=i;
dfs(i,disnow+map[loc][i]);
book[i]=0;
top--;
}
}
return;
}
int main()
{
scanf("%d%d",&start,&end);
scanf("%d%d",&n,&m);
for(int i=1
啊哈算法 城市地图(图的深度优先遍历)
最新推荐文章于 2023-08-10 23:43:35 发布