init
This commit is contained in:
commit
851751ea87
82 changed files with 2093 additions and 0 deletions
50
3D.cpp
Normal file
50
3D.cpp
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
|
||||
long long x[20005];
|
||||
long long y[20005];
|
||||
long long D[20005];
|
||||
bool visited[20005];
|
||||
|
||||
int main() {
|
||||
int n;
|
||||
cin >> n;
|
||||
for (int i = 1; i <= n; i++) {
|
||||
cin >> x[i] >> y[i];
|
||||
}
|
||||
int s, t;
|
||||
cin >> s >> t;
|
||||
long long INF = 1000000000000000000LL;
|
||||
for (int i = 1; i <= n; i++) {
|
||||
D[i] = INF;
|
||||
visited[i] = false;
|
||||
}
|
||||
D[s] = 0;
|
||||
for (int i = 1; i <= n; i++) {
|
||||
int u = -1;
|
||||
long long min_d = INF;
|
||||
for (int j = 1; j <= n; j++) {
|
||||
if (visited[j] == false && D[j] < min_d) {
|
||||
min_d = D[j];
|
||||
u = j;
|
||||
}
|
||||
}
|
||||
if (u == -1 || u == t || D[u] == INF) {
|
||||
break;
|
||||
}
|
||||
visited[u] = true;
|
||||
for (int v = 1; v <= n; v++) {
|
||||
if (visited[v] == false) {
|
||||
long long dx = x[u] - x[v];
|
||||
long long dy = y[u] - y[v];
|
||||
long long cost = D[u] + dx * dx + dy * dy;
|
||||
if (cost < D[v]) {
|
||||
D[v] = cost;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
cout << D[t] << "\n";
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue