https://vjudge.net/problem/UVA-821

题意:
给出一个有向图,任意两点都可相互到达,求任意两点的最短距离的平均值。

思路:
求两点的最短距离,用Floyd算法很方便,最后加起来算个平均值即可。

 #include<iostream>
#include<algorithm>
#include<cstring>
using namespace std; const int INF = ; int x, y;
int d[][]; void Floyd()
{
for (int k = ; k <= ;k++)
for (int i = ; i <= ;i++)
for (int j = ; j <= ; j++)
d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
} int main()
{
//freopen("D:\\txt.txt", "r", stdin);
int kase = ;
while (cin >> x >> y && (x!= || y!=))
{
for (int i = ; i <= ;i++)
for (int j = ; j <= ;j++)
if (i == j) d[i][j] = ;
else d[i][j] = INF; do
{
d[x][y] = ;
} while (cin >> x >> y && (x!= || y!=));
Floyd();
double ans = ;
int count = ;
for (int i = ; i <= ;i++)
for (int j = ; j <= ; j++)
{
if (i!=j && d[i][j] < INF)
{
count++;
ans += d[i][j];
}
}
printf("Case %d: average length between pages = %.3f clicks\n", ++kase, ans / count);
}
}

最新文章

  1. tyvj1013 找啊找啊找GF
  2. java返回一个简单的日历
  3. python SimpleHTTPRequestHandler初探
  4. 基于C#的MongoDB数据库开发应用(1)--MongoDB数据库的基础知识和使用
  5. Ajax原生写法
  6. poj 1001
  7. 二进制程序分析工具Pin在Windows系统中的安装和使用方法
  8. 开发H5小游戏
  9. html 作业1
  10. Apple Watch 1.0 开发介绍 1.4 简介 使用iOS技术
  11. 作为前端工程师,必须要学会的基本工具之一(AI)
  12. 在CentOS7下安装jekyll
  13. 理解js中的运算符优先级
  14. windows配置git
  15. knockout checkbox 全选
  16. Python操作redis学习系列之(集合)set,redis set详解 (六)
  17. 反序列化和序列化xml使用反射处理节点的属性
  18. [Bayes] runif: Inversion Sampling
  19. Nginx 基础知识学习
  20. intellij idea 设置 Error 提示颜色修改

热门文章

  1. 9 jmeter之检查点
  2. Integer.valueOf方法的源码解读
  3. [py][mx]xadmin注册切换主题功能和网站名称修改
  4. CentOS7更改Docker默认镜像和容器存储位置
  5. Java中将xml文件转化为json的两种方式
  6. liferay项目经验之BasePortlet
  7. php mysql_connect pmysql_connect区别
  8. linux安装composer及安装yii2
  9. readyState与status
  10. TestDriven.NET 怎么设置快捷键keyboard shortcut(转)