问题3021--异次元空间

3021: 异次元空间

时间限制: 1Sec 内存限制:128 MB
提交:122 解决:29
[ 状态] [ 讨论版] [ 提交] [命题人: ]
题目描述

小Z是一个非常喜欢冒险的美食家,经常游走在各地寻找美食。这一天,他像往常一样前往城镇A寻找远近闻名的甜甜花酿鸡,却不慎掉入了异次元空间(不是提瓦特大陆),他想尽快找到出口,却发现这里和真实的世界有些不同...

这个世界有许多城镇,每一个城镇都有一个二维坐标,某两个城镇之间有道路相连,道路的长度不一定是欧氏距离(直线距离),而是Lk范数。小Z的初始位置在城镇A,异次元空间出口所在的位置在城镇Z,现在问你小Z应该最少走多远才能到达出口。

关于Lk范数:对于任意两个城镇A(x1,y1),B(x2,y2)Lk范数为 (|x1-x2|k+|y1-y2|k)1/k

提示:若存在三个城镇ABCPk(X,Y)表示城镇XYLk范数,则Pk(A,C)Pk(A,B)+Pk(B,C)(三角不等式)

输入

第一行三个整数n,m,k(2n10000,0mmin(n(n-1)/2,10000),1k6)
分别表示异次元空间中一共存在n个村庄,m条道路,Lk范数中的k

随后n行每行两个整数x,y(200x,y200)表示n个城镇的坐标
城镇A在第二行,城镇Z在第n+1

接着m行每行两个数u,v(1u,vn)表示城镇u和城镇v之间存在道路

不保证数据不存在自环、重边、重点

输出
一个数字表示从城镇 A 到城镇 Z 的最短距离,保存两位小数;若无法到达输出-1.00
样例输入 Copy
3 3 1 0 0 1 0 1 1 1 2 2 3 1 3
样例输出 Copy
2.00
提示

由于k=1,因此两城镇间的距离计算公式为x1x2+y1y2。三个城镇的坐标分别为A(0,0)、B(1,0)、Z(1,1),并且两两之间存在道路连接,因此城镇A可以直接到达城镇Z,距离为2.00。