Daizi's path system
来源:互联网 发布:slf4j 日志 sql 编辑:程序博客网 时间:2024/04/28 14:03
http://cs.scu.edu.cn/soj/problem.action?id=2427
题目
呆子是个没有方向感的人,经常在科大校园内迷路,所以他经常手里拿着一张 地图。每天呆子都在科大校园内转来转去,寻找新奇的人和事物,但是呆子 不是一个喜欢浪费时间的人,每次转悠的时候,他总想找到一条从起点到终点 的最短路。现在这个任务就交给了你,希望你给呆子设计一个查询系统, 呆子每次只需要输入起点和终点,你就要告诉呆子这两点间的最短路是什么。
输入
输入可能有多组。 每组输入的第一行包括两个数字 n和m,其中1 <= n <= 100,表示地图上 的路口的个数(呆子只会从一个路口到另外一个路口),0 <= m < n(n-1)/2, 表示图上的小路的个数,每条小路连接一对路口。 如果m > 0,那么后面将紧跟m行,每行包括三个整数,分别是这条路连接 的两个路口i,j(1<=i,j<=n)和这条路的长度L(1<=L<=1000)。
我们保证,输入的地图都是对的,而且没有两个路口之间存在两条或以上 的路,每条路的长度都是正的,还有这里的路都是双向的,没有一条路 是连接两个相同的路口。 紧接下来的一行是一个整数100000 > k > 0,表示有多少次查询。 紧接下来的k行,每行由两个整数i,j组成,表示查询这两个路口之间的最短路 的长度。(1 <= i,j <= n) 最后一组输入保证 n = 0, 这组输入不需要处理。
输出
对每组输入的每个查询,单独使用一行来输出查询结果:如果两个路口之间 存在一条路,输出其最短路的长度;否则输出“pity”(引号不用输出)。 每组输出使用一个空行作为结尾。
输入例子
3 3
1 2 1
2 3 1
1 3 1
2
1 2
1 3
3 3
1 2 1
2 3 1
1 3 1
2
1 2
1 3
0 0
输出例子
1
1
1
1
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#include<stdio.h>
#include<iostream>
#define NN 200000000
int main()
{
int i,j,k,m,n,x,y,z;
int map[105][105];
while(scanf("%d%d",&m,&n),m,n)
{
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
map[i][j]=NN;
for(i=0;i<n;i++)
{
scanf("%d%d%d",&x,&y,&z);
if(map[x][y]>z)
map[y][x]=map[x][y]=z;
}
for(i=1;i<=m;i++)
map[i][i]=0;
for(k=1;k<=m;k++)
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
if(map[i][j]>map[i][k]+map[k][j])
map[i][j]=map[i][k]+map[k][j];
scanf("%d",&m);
while(m--)
{
scanf("%d%d",&x,&y);
if(map[x][y]<NN)
printf("%d\n",map[x][y]);
else
printf("pity\n");
}
printf("\n");
}
return 0;
}
- Daizi's path system
- soj 2427 Daizi's path system(最短路,用floyd实现的)
- soj2427: Daizi's path system_最短路Floyd
- System.IO.Path
- Linux chang system PATH
- System.IO.Path类
- System.IO.Path类
- System.out.println(System.getenv("PATH"));
- Windows System Default Path String.
- edit path in ubuntu system
- Unity’s Animation System
- Dijkstra's shortest path algorithm
- Dijkstra’s shortest path algorithm
- Setting Jar\'s Class Path
- 【Codeforces226E】Noble Knight's Path
- Red Knight's Shortest Path
- insomniac's water rendering system
- Desire S system update error
- 水晶报表---行计算与列计算和每页统计计算
- linux下bluetooth编程(一)基础概念
- Android开发无法打开模拟器的问题:use '@foo' to launch a virtual device named
- jsp页面之间,数据库·······乱码问题
- 云计算Hadoop配置(二) ——单机伪分布配置
- Daizi's path system
- linux下bluetooth编程(二)blueZ协议栈
- uva10065-
- Java的同步机制总结——synchronized
- hdu 2874(LCA应用)
- C#数字格式化输出
- Qt插件的析构函数不被调用(QTBUG17458)
- 关于汇编ROR的运算
- java中的MD5加密