$P1744 采购特价商品$

\(problem\)

#ifdef Dubug

#endif
#include <bits/stdc++.h>
using namespace std;
typedef long long LL ;
inline LL In() { LL res(0),f(1); register char c ;
	while(isspace(c=getchar())) ; c == '-'? f = -1 , c = getchar() : 0 ;
	while(res = (res << 1) + (res << 3) + (c & 15) , isdigit(c=getchar())) ;
	return res * f ;
}

int n , m ;

const int N = 100 + 5 ;
struct node{
	int x ;
	int y ;
};
node a[N] ;
double dis[N][N] ;
inline double d(int x,int y,int xx,int yy) {
	return sqrt(pow((x-xx),2)+pow((y-yy),2)) ;
}
signed main() {
	memset(dis,0x7f,sizeof(dis)) ;
	n = In() ;
	for(register int i=1;i<=n;i++) {
		int x , y ;
		x = In() , y = In() ;
		a[i] = node{x,y} ;
	}
	m = In() ;
	for(register int i=1;i<=m;i++) {
		int u , v ;
		u = In() , v = In() ;
		dis[u][v] = dis[v][u] = d(a[u].x,a[u].y,a[v].x,a[v].y) ;
	}
 	for(register int k=1;k<=n;k++)
		for(register int i=1;i<=n;i++)
			for(register int j=1;j<=n;j++) dis[i][j] = min(dis[i][j],dis[i][k]+dis[k][j]) ;
	int s , t ;
	s = In() , t = In() ;
	cout << fixed << setprecision(2) << dis[s][t] << endl ;
	return 0 ;
}

posted @ 2019-03-30 15:26  Isaunoya  阅读(71)  评论(0编辑  收藏  举报
TOP