博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ2387 Til the Cows Come Home(最短路径)
阅读量:6528 次
发布时间:2019-06-24

本文共 1045 字,大约阅读时间需要 3 分钟。

题意:

输入一个图,给出每条边的权值,以1为起点,要求到n的最短路径。

要点:

今天学了一下最短路,有好多种算法,估计要做好长一段时间了。这题就是最简单的模板,就是稍微注意一下可能有重边。这题用的dijkstra算法,主要是贪心,证明还不会。以后看看能不能推一下。

参考博客:  

dijkstra算法:

15365926 Accepted 4164K 63MS 852B 2016-04-07 22:20:16
#include
#include
#include
#define maxn 1010#define INF 0x3f3f3f3fint map[maxn][maxn];int dis[maxn]; //起点到j的最短路径bool vis[maxn]; int n, m;void dijkstra(){ int i, j, temp,min; memset(vis, true, sizeof(vis)); for (i = 1; i <= n; i++) { vis[1] = false; dis[i] = map[1][i]; } for (i = 1; i <= n; i++) { min = INF; for (j = 1; j <= n; j++) if (vis[j] && min > dis[j])//选出当前点发散的最小边 { min = dis[j]; temp = j; } vis[temp] = false; //将运算过的点剔除 for (j = 1; j <= n; j++) { if (vis[j] && dis[j] > map[temp][j] + dis[temp])//这里进行更新,保证dis储存最短路径 dis[j] = map[temp][j] + dis[temp]; } }}int main(){ int a,b,c; while (~scanf("%d%d", &m, &n)) { memset(map, INF, sizeof(map)); while (m--) { scanf("%d%d%d", &a, &b, &c); if(c

转载于:https://www.cnblogs.com/seasonal/p/10343790.html

你可能感兴趣的文章
【转】如何使用分区助手完美迁移系统到SSD固态硬盘?
查看>>
NIO框架入门(四):Android与MINA2、Netty4的跨平台UDP双向通信实战
查看>>
ios兼容iphonex刘海屏解决方案
查看>>
就是要你懂TCP -- 握手和挥手
查看>>
Andrew Ng机器学习公开课笔记 -- Regularization and Model Selection
查看>>
《Python游戏编程快速上手》一1.3 如何使用本书
查看>>
《Android游戏开发详解》——第1章,第1.3节声明和初始化变量
查看>>
《Visual Studio程序员箴言》----1.2 滚动与导航
查看>>
Processing编程学习指南2.7 Processing参考文档
查看>>
架构师速成-架构目标之伸缩性\安全性
查看>>
执行可运行jar包时读取jar包中的文件
查看>>
linux下ExtMail邮件使用及管理平台
查看>>
linux中iptables设置自建dns服务器的端口
查看>>
TP5+PHPexcel导入xls,xlsx文件读取数据
查看>>
基于Yum安装zabbix3.0
查看>>
Master-work模式
查看>>
dos命令行 指令
查看>>
RT-Thread--时间管理
查看>>
BUPT 63T 高才生 找最佳基站
查看>>
linux 学习(二)防火墙
查看>>