求所有点直接的平均最短距离,保存一下出现过的点,题目保证是所有点连通,Floyd求出最短路以后两个for统计一下。

#include<bits/stdc++.h>
using namespace std; const int maxn = ; int g[maxn][maxn];
bool vis[maxn];
vector<int> p;
const int INF = 0x3f3f3f3f; int main()
{
//freopen("in.txt","r",stdin);
int u,v,kas = ;
memset(g,0x3f,sizeof(g));
for(int i = ; i < maxn; i++) g[i][i] = ;
while(scanf("%d%d",&u,&v),u){
p.clear(); memset(vis,,sizeof(vis));
g[u][v] = ; vis[u] = vis[v] = true;
while(scanf("%d%d",&u,&v),u){
g[u][v] = ;
vis[u] = vis[v] = true;
}
for(int i = ; i < maxn; i++){
if(vis[i]) p.push_back(i);
}
int sz = p.size(); for(int k = ; k < sz; k++){
int m = p[k];
for(int i = ; i < sz; i++){
int u = p[i];
if(g[u][m]<INF){
for(int j = ; j < sz; j++){
int v = p[j];
g[u][v] = min(g[u][v],g[u][m]+g[m][v]);
}
}
}
} int sum = ;
for(int i = ; i < sz; i++){
int u = p[i];
for(int j = ; j < sz; j++) if(i!=j){
int v = p[j];
sum += g[u][v];
g[u][v] = INF;
}
}
printf("Case %d: average length between pages = %.3lf clicks\n",++kas,(double)sum/(sz*(sz-)));
}
return ;
}

UVA821 PageHopping (Floyd)的更多相关文章

  1. (floyd)佛洛伊德算法

    Floyd–Warshall(简称Floyd算法)是一种著名的解决任意两点间的最短路径(All Paris Shortest Paths,APSP)的算法.从表面上粗看,Floyd算法是一个非常简单的 ...

  2. POJ 2139 Six Degrees of Cowvin Bacon (Floyd)

    题意:如果两头牛在同一部电影中出现过,那么这两头牛的度就为1, 如果这两头牛a,b没有在同一部电影中出现过,但a,b分别与c在同一部电影中出现过,那么a,b的度为2.以此类推,a与b之间有n头媒介牛, ...

  3. [CodeForces - 296D]Greg and Graph(floyd)

    Description 题意:给定一个有向图,一共有N个点,给邻接矩阵.依次去掉N个节点,每一次去掉一个节点的同时,将其直接与当前节点相连的边和当前节点连出的边都需要去除,输出N个数,表示去掉当前节点 ...

  4. Stockbroker Grapevine(floyd)

    http://poj.org/problem?id=1125 题意: 首先,题目可能有多组测试数据,每个测试数据的第一行为经纪人数量N(当N=0时, 输入数据结束),然后接下来N行描述第i(1< ...

  5. Floyed(floyd)算法详解

    是真懂还是假懂? Floyed算法:是最短路径算法可以说是最慢的一个. 原理:O(n^3)的for循环,对每一个中间节点k做松弛(寻找更短路径): 但它适合算多源最短路径,即任意两点间的距离. 但sp ...

  6. POJ 2253 Frogger(floyd)

    http://poj.org/problem?id=2253 题意 : 题目是说,有这样一只青蛙Freddy,他在一块石头上,他呢注意到青蛙Fiona在另一块石头上,想去拜访,但是两块石头太远了,所以 ...

  7. hdu1869 六度分离(Floyd)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1869 转载请注明出处:http://blog.csdn.net/u012860063?viewmode ...

  8. 最短路(Floyd)-hdu1317

    题目链接:https://vjudge.net/problem/HDU-1317 题目描述: 题意:玩家起始有100个能量点,刚开始在起始房间中,每个房间外有一条单向的路径通往其他房间(一个房间可能通 ...

  9. 算法:最短路径之弗洛伊德(Floyd)算法

    https://cloud.tencent.com/developer/article/1012420 为了能讲明白弗洛伊德(Floyd)算法的主要思想,我们先来看最简单的案例.图7-7-12的左图是 ...

随机推荐

  1. python GUI尝鲜(但当涉猎,见往事耳)

    第一步:简单的窗口和内容 import tkinter as tk window = tk.Tk() # 窗口obj对象 window.title('my TK') # 窗口名字 window.geo ...

  2. 【网络爬虫】【java】微博爬虫(一):小试牛刀——网易微博爬虫(自定义关键字爬取微博数据)(附软件源码)

    一.写在前面 (本专栏分为"java版微博爬虫"和"python版网络爬虫"两个项目,系列里所有文章将基于这两个项目讲解,项目完整源码已经整理到我的Github ...

  3. .net 反射构造你自己的“匿名”对象

    由于近来项目的底层架构某些特殊需求及场景的需要要求动态build一个对象, 属性名称个类与类型都是外界动态传入的. 不多说废话,直接上我最原始的代码: public static Type GetMy ...

  4. [翻译] 正式宣布 .NET 5

    原文: Introducing .NET 5 今天,我们宣布 .NET Core 3.0 之后的下一个版本将是 .NET 5 .这将是 .NET 系列的下一个重要版本. 将来只会有一个 .NET ,您 ...

  5. E20180525-hm

    sensitive adj. 敏感的; 感觉的; [仪] 灵敏的; 易受影响的; lookup v. 查找; 查表; speedy  adj. 快的,迅速的; 敏捷的 marshal  vt. 整理, ...

  6. Mac和Unix的常用命令行指令

    更新:2017/05/03/02:05 更新: 2017/05/14/11:14 更新: 2017/09/05/16:15 增加rm -rf 强制删除文件夹内所有文件 更新: 2018/01/16 完 ...

  7. iOS7 UITableView Row Height Estimation

    This post is part of a daily series of posts introducing the most exciting new parts of iOS7 for dev ...

  8. GPDB外部表创建示例

    创建以|为分隔符的外部表CREATE EXTERNAL TABLE ext_expenses ( name text,date date, amount float4, category text, ...

  9. Cordova 系列之Mac OS 环境配置

    1.从AppStore 安装xcode 2.安装node.js环境 http://nodejs.org/ 3.使用命令行安装 cordova 命令行帮助:http://cordova.apache.o ...

  10. java多线程模拟红绿灯案例

    代码Lighter.java: package pack1; /** * 灯线程 * @author Administrator * */ public class Lighter extends T ...