博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JZOJ 4.8 2433——最短路上的统计【最短路】
阅读量:5276 次
发布时间:2019-06-14

本文共 901 字,大约阅读时间需要 3 分钟。

Description

一个无向图上,没有自环,所有边的权值均为1,对于一个点对(a,b),我们要把所有a与b之间所有最短路上的点的总个数输出。

Input

第一行n,m,表示n个点,m条边

接下来m行,每行两个数a,b,表示a,b之间有条边
在下来一个数p,表示问题的个数
接下来p行,每行两个数a,b,表示询问a,b

Output

对于每个询问,输出一个数c,表示a,b之间最短路上点的总个数

Sample Input

5 6

1 2
1 3
2 3
2 4
3 5
4 5
3
2 5
5 1
2 4

Sample Output

4

3
2


先用Floyd求出两点之间的最短路

在先前推出总个数


代码如下:

var  a:array[0..200,0..200] of longint;  n,m,z,x,y,i,j,k,sum:longint;begin  readln(n,m);  for i:=1 to n do    for j:=1 to n do      a[i,j]:=10000000;  for i:=1 to m do    begin      readln(x,y);      a[x,y]:=1;      a[y,x]:=1;    end;  for k:=1 to n do    for i:=1 to n do      for j:=1 to n do        if a[i,j]>a[i,k]+a[k,j] then a[i,j]:=a[i,k]+a[k,j];  readln(z);  for i:=1 to z do    begin      sum:=2;      readln(x,y);      for j:=1 to n do if a[x,j]+a[j,y]=a[x,y] then if (x<>j)and(j<>y) then inc(sum);      writeln(sum);    end;end.

转载于:https://www.cnblogs.com/Comfortable/p/8412327.html

你可能感兴趣的文章
排序sort (一)
查看>>
Parrot虚拟机
查看>>
Teamcenter10 step-by-step installation in Linux env-Oracle Server Patch
查看>>
Struts2学习(三)
查看>>
Callable和Runnable和FutureTask
查看>>
GitHub 多人协作开发 三种方式:
查看>>
文本域添加编辑器
查看>>
Yum安装MySQL以及相关目录路径和修改目录
查看>>
java获取hostIp和hostName
查看>>
关于web服务器和数据库的各种说法(搜集到的)
查看>>
《TCP/IP 详解 卷一》读书笔记 -----第四章 ARP
查看>>
C# Stream 和 byte[] 之间的转换
查看>>
OMG: daily scrum nine
查看>>
redis与spring结合错误情况
查看>>
第六章 字节码执行方式--解释执行和JIT
查看>>
实现绘制图形的ToolBar
查看>>
C# 串口接收数据中serialPort.close()死锁
查看>>
Python3控制结构与函数
查看>>
字符串方法title()、istitle()
查看>>
yield语句
查看>>