首页 > 其他分享 >城市地图-- 图的深度优先搜素

城市地图-- 图的深度优先搜素

时间:2023-02-17 15:07:42浏览次数:29  
标签:map 城市地图 return mindis -- int book 搜素 dis


#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
int mindis = 9999999 ;
const int MAX = 1000 ;
int n ,m ;
int book[MAX];
int map[MAX][MAX] ;
void init()
{
int i ;
int j ;
for(i=1;i<=n;i++)
{
for(j = 1;j<=n ;j++)
{
if(i==j)
map[i][j] = 0 ;
else
map[i][j] = mindis ;
}
}
int a ,b ,c ;
for(i=1;i<=m;i++)
{
cin>>a>>b>>c;
map[a][b] = c ;

}

return ;

}
void dfs(int cur ,int dis)
{
int i ;
if(dis>mindis)
return ;
if(cur==n)
{
if(dis<mindis)
mindis =dis ; // 更新最小路径;
return ;
}

for(i=1;i<=n;i++)
{
if(map[cur][i]!=mindis && book[i]==0)
{
book[i] = 1 ;
dfs(i,dis+map[cur][i]); // 从城市i再出发继续寻找目标;
book[i] = 0 ; // 之前一步探索完毕后,取消对城市i 的标记

}

}
return ;
}
int main()
{
int i;
cin>>n >>m ;
init();
book[1] = 1 ; // 标记1号城市已经在路径中了
dfs(1,0);// 1 表示当前所在的城市编号,0表示当前走过的路程

cout<<mindis<<endl;

return 0 ;
}
/*
测试数据:
5 个城市 8 条路线
第 2 到9 行 表示 ai 到 bi 的权值为ci
5 8
1 2 2
1 5 10
2 3 3
2 5 7
3 1 4
3 4 4
4 5 5
5 3 3

输出
9

*/



标签:map,城市地图,return,mindis,--,int,book,搜素,dis
From: https://blog.51cto.com/u_15970235/6064094

相关文章

  • 广度优先搜素 -- 图的遍历
    #include<iostream>#include<algorithm>usingnamespacestd;constintINF=0x3f3f3f3f;constintMAX=100;intn,m;intbook[MAX];//用于标记是否访问过boo......
  • 快速幂
    #include<iostream>#include<bits/stdc++.h>usingnamespacestd;//快速幂typedeflonglongLL;constLLmod=1e9+7;//大质数;LLpower(LLa,LLb,LLmod){LLa......
  • 全排列
    #include<iostream>#include<cstdio>usingnamespacestd;//输出全排列constintMAX=1000;inta[MAX];intn;intbook[MAX];voiddfs(intstep){inti;if(step......
  • 如何复制一个java对象(浅克隆与深度克隆)
    在项目中,有时候有一些比较重要的对象经常被当作参数传来传去,和C语言的值传递不同,java语言的传递都是引用传递,在任何一个地方修改了这个对象的值,就会导......
  • Satellite Photographs
       SatellitePhotographsFarmerJohnpurchasedsatellitephotosofWxHpixelsofhisfarm(1<=W<=80,1<=H<=1000)andwishestodeterminethelarges......
  • 图的最小生成树--小白进阶篇
    情景导入:      最近同学小i,我们姑且叫他小i同学,他最近不知道迷上了旅游,常常在夜深人静的时候,突然仰天大笑,”明天我要做个惊天地泣鬼神的决定,我要去旅行“,然后......
  • Drying
    #include<iostream>#include<cstdio>#include<cstring>#include<algorithm>usingnamespacestd;intconstMAX=1000;intconstINF=9999999;intn,k;//wash......
  • 堆-- 神奇的优先队列
    堆是什么?是一种特殊的完全二叉树,就像树一样。有没有发现这棵二叉树有一个特点?就是所有的父节点都比子节点小(PS:就是圆圈的数值,圆圈外面的编号是这个节点的编号,)那么符合这样......
  • 贪心-活动选择
    题目描述: ProblemDescription学校的大学生艺术中心周日将面向全校各个学院的学生社团开放,但活动中心同时只能供一个社团活动使用,并且每一个社团活动开始后都不能中断。现......
  • 基于sysbench-mongodb-lua的mongodb的性能测试
    1.环境准备installsysbenchyuminstallsysbenchinstallmongoroverdriver···yuminstalllibmongoc-devlibbson-devluarocksluarocksinstallmongorover......