本题思路:最短路变形,改变松弛方式即可,dist存的是源结点到当前结点的最长路的最小权值。

  参考代码:

 #include <cstdio>
#include <cstring>
#include <algorithm>
#define INF 0x3f3f3f3f
using namespace std; const int maxn = + ;
int n, m, k, Case = , G[maxn][maxn], dist[maxn];
bool vis[maxn]; int Dijkstra(int source, int aid) {
for(int i = ; i <= n; i ++)
dist[i] = (i == source ? INF : );
for(int i = ; i <= n; i ++) {
int minf = -;
for(int j = ; j <= n; j ++)
if(!vis[j] && minf < dist[j]) {
minf = dist[j];
k = j;
}
vis[k] = true;
if(minf == - ) break;
for(int j = ; j <= n; j ++)
if(!vis[j] && dist[j] < min(dist[k], G[k][j]))
dist[j] = min(dist[k], G[k][j]);
}
return dist[aid];
} int main () {
int t, x, y, w;
scanf("%d", &t);
while(t --) {
memset(vis, false, sizeof vis);
for(int i = ; i <= n; i ++) {
for(int j = ; j <= n; j ++)
G[i][j] = ;
}
scanf("%d %d", &n, &m);
for(int i = ; i <= m; i ++) {
scanf("%d %d %d", &x, &y, &w);
G[x][y] = G[y][x] = max(G[x][y], w);
}
printf("Scenario #%d:\n%d\n\n", ++Case, Dijkstra(, n));
}
return ;
}

最新文章

  1. ios 弹出不同的键盘
  2. 关闭显示器API及命令
  3. 让fdisk输出更准确合理
  4. [Python]Unicode转ascii码的一个好方法
  5. [LeetCode]Palindrome Partitioning 找出所有可能的组合回文
  6. TSP问题(旅行商问题)[分支限界法]
  7. JavaScript函数部分
  8. 笔记:Hibernate SQL 查询
  9. python3+selenium入门06-浏览器操作
  10. Linux服务器CPU使用率较低但负载较高
  11. 将指定世界中的指定位置的Block转化为箱子
  12. HTML5特性&amp;&amp;canvas
  13. Collection集合复习方法回顾
  14. Python 中Lambda 表达式 实例解析
  15. VMware下的Linux系统中Windows的共享目录,不支持创建软连接
  16. UI---------EventSystem
  17. 史上最全的Maven Pom文件标签详解
  18. 《python编程从入门到实践》第六章笔记
  19. shell重温---基础篇(printf命令&amp;test命令)
  20. STM32空闲中断

热门文章

  1. python 0,1行列问题
  2. QT4.8.6-VS2010开发环境配置
  3. 3.2-1937 Problem D
  4. flask-appbuilder +echarts 展示数据笔记
  5. Linux系统目录权限chmod误操作权限修复方法
  6. Java Web参考资料
  7. mysqlbinlog基于位置点恢复
  8. Grafana介绍
  9. 会话保持及Form表单
  10. 保存数据到Excel中