分析:floyd看似很好理解,实际上是状态转移,具体的解释参照这里

http://www.cnblogs.com/chenying99/p/3932877.html

深入理解了floyd后,这个题就可做了

首先,枚举最短路径的最大点,k,然后由于floyd的更新性质,更新到k时,

数组中存的是“只能使用第1号到第k-1号点作为中间媒介时,点i到点j之间的最短路径长度”

这样枚举在k两边的这两个节点,i和j这样就可以,这两个直接的最短路已经确定,保证i<j,这样就找到了以i为最大节点的一个环

最后不断比较统计就行了,这样可以保证不重不漏

#include <stdio.h>
#include <iostream>
#include <vector>
#include <math.h>
#include <algorithm>
#include <string.h>
#include <string>
using namespace std;
typedef long long LL;
const int N=1e2+;
const int INF=5e8;
int mp[N][N],dis[N][N];
int main()
{
int T;
scanf("%d",&T);
while(T--){
int n,m;
scanf("%d%d",&n,&m);
for(int i=;i<=n;++i)
for(int j=;j<=n;++j)
mp[i][j]=INF;
for(int i=;i<m;++i){
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
if(w<mp[u][v])
mp[u][v]=mp[v][u]=w;
}
for(int i=;i<=n;++i)
for(int j=;j<=n;++j)
dis[i][j]=mp[i][j];
int mx=INF,cnt=;
for(int k=;k<=n;++k){
for(int i=;i<k;++i)
for(int j=i+;j<k;++j)
if(mx>mp[i][k]+mp[j][k]+dis[i][j])
mx=mp[i][k]+mp[j][k]+dis[i][j],cnt=;
else if(mx==mp[i][k]+mp[j][k]+dis[i][j])++cnt;
for(int i=;i<=n;++i)
for(int j=;j<=n;++j)
dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
}
if(cnt==)printf("-1\n");
else printf("%d %d\n",mx,cnt);
}
return ;
}

最新文章

  1. 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)
  2. Java实现验证码制作之一Kaptcha验证码
  3. apache2.2 做后端,增加真实ip到日志中
  4. Android TelephonyManager电话管理器
  5. js继承理解(有引用)
  6. 二模 (16) day1&amp;day2
  7. 西安.NET俱乐部群 推广代码
  8. 状态压缩dp问题
  9. Dapper使用在WCF上总是说Service找不到
  10. The Swift Programming Language-官方教程精译Swift(7)函数 -- Functions
  11. Ext中包含了几个以get开头的方法
  12. python web入门程序
  13. 『备注』&amp;#x; 格式 的编码转换
  14. Visual Studio 开发工具常用的插件
  15. Maven2插件开发入门
  16. springboot + mybatis 前后端分离项目的搭建 适合在学习中的大学生
  17. Nginx的https配置记录以及http强制跳转到https的方法梳理
  18. 如何使用gifsicle压缩gif图片
  19. 每日英语:How to Save Detroit
  20. 谷歌浏览器:audio如何隐藏下载按钮

热门文章

  1. 【搭建开发环境】Linux 中安装 Eclipse 进行 C/C++ 开发
  2. Linux C 程序 基础语法(1)
  3. parseInt()、parseFloat()与Number()的比较
  4. jQuery事件绑定和委托
  5. unix 常用命令
  6. web页面显示折叠树菜单笔记
  7. javaWeb中的/路径问题
  8. Eclipse 启动问题:&#39;Initilizing Java Tooling&#39; has encountered a problem(。。。)
  9. DOM in Angular2
  10. Moloch