UVa 821 网页跳跃(Floyd)
2024-08-20 00:44:44
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);
}
}
最新文章
- tyvj1013 找啊找啊找GF
- java返回一个简单的日历
- python SimpleHTTPRequestHandler初探
- 基于C#的MongoDB数据库开发应用(1)--MongoDB数据库的基础知识和使用
- Ajax原生写法
- poj 1001
- 二进制程序分析工具Pin在Windows系统中的安装和使用方法
- 开发H5小游戏
- html 作业1
- Apple Watch 1.0 开发介绍 1.4 简介 使用iOS技术
- 作为前端工程师,必须要学会的基本工具之一(AI)
- 在CentOS7下安装jekyll
- 理解js中的运算符优先级
- windows配置git
- knockout checkbox 全选
- Python操作redis学习系列之(集合)set,redis set详解 (六)
- 反序列化和序列化xml使用反射处理节点的属性
- [Bayes] runif: Inversion Sampling
- Nginx 基础知识学习
- intellij idea 设置 Error 提示颜色修改
热门文章
- 9 jmeter之检查点
- Integer.valueOf方法的源码解读
- [py][mx]xadmin注册切换主题功能和网站名称修改
- CentOS7更改Docker默认镜像和容器存储位置
- Java中将xml文件转化为json的两种方式
- liferay项目经验之BasePortlet
- php mysql_connect pmysql_connect区别
- linux安装composer及安装yii2
- readyState与status
- TestDriven.NET 怎么设置快捷键keyboard shortcut(转)