只 A 了 1 个点……
查看原帖
只 A 了 1 个点……
360331
int64楼主2021/8/24 13:47

code:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<string>
#include<cstring>
#include<iomanip>
#define IOS ios_base::sync_with_stdio(0); cin.tie(0);

using namespace std;

#define inf 0x3f3f3f3f
#define int long long
#define endl '\n'

const int maxn = 110;

int n, m;
double x[maxn], y[maxn];
double d[maxn][maxn];

double getDis(double xa, double ya, double xb, double yb) {
	return sqrt((xa - xb) * (xa - xb) + (ya - yb) * (ya - yb));
}

signed main() {
	IOS;
	memset(d, 0x3f, sizeof(d));
	cin >> n;
	for (int i = 1;i <= n;i++) {
		cin >> x[i] >> y[i];
	}
	cin >> m;
	for (int i = 1;i <= m;i++) {
		int u, v;
		cin >> u >> v;
		d[u][v] = getDis(x[u], y[u], x[v], y[v]);
		d[v][u] = getDis(x[v], y[v], x[u], y[u]);
	}
	for (int k = 1;k <= n;k++) {
		for (int i = 1;i <= n;i++) {
			for (int j = 1;j <= n;j++) {
				d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
			}
		}
	}

	int s, t;
	cin >> s >> t;
	cout << fixed << setprecision(2) << d[s][t] << endl;
	return 0;
}

//Fununugugu Code
2021/8/24 13:47
加载中...