JDOJ 1523: VIJOS-P1446 最短路上的统计

JDOJ传送门

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

HINT

范围:n< =100,p< =5000

题解:

一看是任意两点之间的最短路,并且n<=100。那么就可以果断地用Floyd算法了。

如果还没有学习Floyd算法,请移步至我的最短路算法的讲解。

最短路算法讲解

那么现在不是简单地让我们求任意两点最短路,而是要我们统计最短路点的个数。

这样的话怎么处理呢?

先跑最短路,然后我们继续用Floyd思想,枚举断点,如果这个端点在最短路上,那么一定有:这个点到最短路两个端点的距离和等于这个最短路的长度。

真相大白。

代码如下:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,m,p,ans;
int map[110][110];
int main()
{
scanf("%d%d",&n,&m);
memset(map,0x3f,sizeof(map));
for(int i=1;i<=n;i++)
map[i][i]=0;
for(int i=1;i<=m;i++)
{
int x,y;
scanf("%d%d",&x,&y);
map[x][y]=map[y][x]=1;
}
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
map[i][j]=min(map[i][k]+map[k][j],map[i][j]);
scanf("%d",&p);
while(p--)
{
ans=0;
int a,b;
scanf("%d%d",&a,&b);
for(int k=1;k<=n;k++)
if(map[a][k]+map[k][b]==map[a][b] || map[b][k]+map[k][a]==map[a][b])
ans++;
printf("%d\n",ans);
}
return 0;
}

最新文章

  1. Vijos 1055 奶牛浴场
  2. .NET学习记录1
  3. java程序员应该掌握的技能
  4. JSON-lib框架,JAVA对象与JSON、XML之间的相互转换
  5. 冒泡排序小实例 php
  6. 关于ligerUi的ligertree的初始化默认选中指定项目的方法
  7. Oracle 插入数据
  8. Java的redis 操作类-优化通用版本
  9. 背包问题递归java
  10. 【原创】NuGet 出现“无法初始化 PowerShell 主机,如果将你的 PowerShell 执行策略设置设置为 AllSigned ,请先打开程序包管理控制台以初始化该主机” 错误的解决方法
  11. Android之使用MediaMetadataRetriever类获取媒体信息
  12. Disruptor并发框架 (二)核心概念场景分析
  13. Android View架构总结
  14. 深入理解C++11
  15. kubernetes 学习资料
  16. [疑难杂症]__点击win10屏幕最上方的边界会莫名其妙打开Internet Explorer浏览器,不胜其烦(2次ps:已解决!!!).
  17. centos6.5上安装配置telnet服务
  18. FIFO 、LRU、LFU三种算法
  19. sysv-rc-conf介绍
  20. JavaScript正则表达式练习

热门文章

  1. 不同种类的ICP算法
  2. 二进制安装K8S集群V1.16.3
  3. 我的周记9——&quot;所以快乐才是真谛&quot;
  4. [转帖]mDNS原理的简单理解
  5. c#语法复习总结(2)-数据类型
  6. webapi 集成NLog
  7. ASP.NET MVC EF 连接数据库(二)-----Model First
  8. Linux之《荒岛余生》(三)内存篇
  9. Mysql外键约束之CASCADE、SET NULL、RESTRICT、NO ACTION
  10. 图示详解BERT模型的输入与输出