2D Traveling
题目连结
昨天太累了以为有发结果根本没有
起点到终点的直线
与起点最近之主城距离加上与终点与其最接近之主城(与起点的不同)距离
谁距离较进距离要按照题目规定的去算code
#include <iostream>#include <map>#include <vector>#include <algorithm>#include <cmath>#define ll long longusing namespace std;ll distance(ll x1, ll x2, ll y1, ll y2){ return abs(x1 - x2) + abs(y1 - y2);}int main(int argc, char const *argv[]){ ll t = 0; cin >> t; while (t--) { ll n, m, s, f; cin >> n >> m >> s >> f; vector<pair<int, int>> v(n + 1); for (int i = 1; i <= n; i++) { cin >> v[i].first >> v[i].second; } ll d; d = distance(v[s].first, v[f].first, v[s].second, v[f].second); ll ans[2]; ans[0] = 1000000000000; ans[1] = 1000000000000; for (int i = 1; i <= m; i++) { ans[0] = min(ans[0], distance(v[i].first, v[s].first, v[i].second, v[s].second)); ans[1] = min(ans[1], distance(v[i].first, v[f].first, v[i].second, v[f].second)); } ans[0] = min(ans[0] + ans[1], d); cout << ans[0] << endl; } return 0;}