图结构练习——最短路径
题目描述
输入
输出
示例输入
3 2 1 2 1 1 3 1 1 0
示例输出
1 0
提示
#include <iostream>
#include<cstdio>
#include<cstdlib>
#include<queue>
#define INF 0x3f3f3f3f
using namespace std;
typedef struct arcnode
{
int adj;
int info;
}arcnode,adjmatrix[101][101];
typedef struct
{
adjmatrix a;
int vn,an;
}MG;
struct node
{
int data;//存储结点;
int step;//最小的路径;
};
int i,j;
int create(MG &g,int n,int m)//邻接矩阵的建立;
{
int v1,v2,w;
g.vn=n;
g.an=m;
for(i=1;i<=g.vn;i++)
for(j=1;j<=g.vn;j++)
if(i==j)
g.a[i][j].adj=0;
else g.a[i][j].adj=INF;//规定不同两点间的距离为无穷大;
for(i=1;i<=g.an;i++)
{
scanf("%d%d%d",&v1,&v2,&w);
if(g.a[v1][v2].adj>w||g.a[v2][v1].adj>w)
g.a[v1][v2].adj=w; //有重复边选权值最小的保存
g.a[v2][v1]=g.a[v1][v2];
}
return 1;
}
void floyd(MG &g)//弗洛伊德算法(找两点间的最小路径);
{
int k;
for(k=1;k<=g.vn;k++)
for(i=1;i<=g.vn;i++)
for(j=1;j<=g.vn;j++)
if(i!=j)
{
if(g.a[i][j].adj>g.a[i][k].adj+g.a[k][j].adj)
g.a[i][j].adj=g.a[i][k].adj+g.a[k][j].adj;
}
}
int main()
{
MG g;
int m,n;
while(~scanf("%d%d",&n,&m))
{
create(g,n,m);
floyd(g);
printf("%d\n",g.a[1][n].adj);
}
return 0;
}
图结构练习——最短路径相关推荐
- oj 2143 图结构练习——最短路径的几种算法
图结构练习--最短路径 Description 给定一个带权无向图,求节点1到节点n的最短路径. Input 输入包含多组数据,格式如下. 第一行包括两个整数n m,代表节点个数和边的个数.(n< ...
- 图结构练习——最短路径 (Dijkstra算法版)
Dijkstra算法 定义:迪克斯特拉算法,是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题.迪杰斯特拉算法主要特点是从起始点开始,采用贪心算法的策略,每次遍历到始点距离最近且未访 ...
- 矩阵和图结构(图论) 最短路径问题 学习笔记
矩阵和图是可以相互转换的,这里的图不仅仅是图片,还包括图结构(图论) 所以最短路径问题解决矩阵和结局图论均是一个问题.
- Java图结构-模拟校园地图-迪杰斯特拉(Dijkstra)算法求最短路径 #谭子
目录目录 一.前言 二.模拟校园地图描述 三.分析题目及相关绘图 四.代码部分 1.GraphNode类 2.Menu类(管理文字) 3.Attraction类 4.AttractionGraph类( ...
- ICML2020 | 神经网络的图结构如何影响其预测性能?
作者 | 董靖鑫 审稿 | 程玉 今天给大家介绍的是来自斯坦福大学的Jure Leskovec课题组发表在ICML2020上的文章" Graph Structure of Neural Ne ...
- 【算法】广度遍历算法的应用 求出距离顶点v0的最短路径长度为最长的一个顶点,图结构的bfs生成树及其双亲表示形式
例: 求出距离顶点v0的最短路径长度为最长的一个顶点,并要求尽可能节省时间 分析: 用bfs算法(利用bfs算法的层次特性): 从v0出发进行广度遍历时, 最后一层的顶点距离v0的最短路径长度最长.因 ...
- 数据结构(C++)——图:基于邻接矩阵实现的图结构
抽象数据类型 操作接口:图支持的操作接口分为边和顶点两类 Graph模板类 typedef enum { UNDISCOVERED, DISCOVERED, VISITED } VStatus; // ...
- python地铁查询系统_基于图结构实现地铁乘坐线路查询
基于图结构实现地铁乘坐线路查询 github-python算法和flaskapp部分:repo github-android部分:repo flaskapp接口文档:传送门 深度了解Dijkstra优 ...
- 基于图结构实现地铁乘坐线路查询
基于图结构实现地铁乘坐线路查询 github-python算法和flaskapp部分:repo github-android部分:repo flaskapp接口文档:传送门 深度了解Dijkstra优 ...
最新文章
- 当最懂 5G 的中国移动遇见云,移动云专题赛正式启动!
- no copy constructor available or copy constructor is declared #39;explicit#39;
- pandas isnull 函数
- Matlab:成功解决Undefined function or variable B
- 控制好你的 Wordpress 侧边栏
- C++——多态实现原理分析
- web前端超出两行用省略号表示
- C/C++ 指针和数组
- 虚拟专题:知识图谱 | 事件图谱的构建、推理与应用
- 手把手教你如何在安卓平台上实现打电话发短信的功能
- 如何创建和使用自引用层次结构表
- javascript KeyboardEvent
- ssis导入xml_SSIS XML目标
- 通过DBLINK跨数据库查询,同步创建表结构,插入表数据
- Fiddler抓包【3】_设置断点修改
- 硬盘提示设备未就绪要如何办啊
- 学位论文和论文的区别是什么?
- SQL -- 判断字段值是否为空,假如是空的话,就赋值为0,假如不为空,则赋值就为1
- acwing 846. 树的重心
- php.ino,北京大学POMINO v2 NO2卫星产品发布
热门文章
- android jni 调用java_Android 基于NDK的JNI开发 C调用java和java调用C
- python创建文件夹用什么函数_Python——os.mkdir()在指定路径下创建文件夹 + 路径的连接理解...
- html5 css3浏览器,五大主流浏览器CSS3和HTML5兼容性大比拼
- qsub 指定节点_PBS,QSUB常用命令
- 滤波器的优点_声光可调谐滤波器
- webservice 服务器无法处理请求_Message Queue与WebService比较
- idea修改代码后不重启项目_使用DevTool实现SpringBoot项目热部署
- 非顺序控制结构的c语言语法是怎样的,流程控制语句:顺序结构和选择结构
- spark on yarn 完全分布式_「大数据」(七十一)Spark之架构介绍
- gta5显示nat较为严格_为何严格治理下雾霾天仍频发?哈尔滨市环保局解答重污染天3大疑问...