最小生成树Prim算法,WA on #7
#include<bits/stdc++.h>
#define endl "\n"
#define write ios::sync_with_stdio(0);
#define by cin.tie(0);
#define ikun_xiaoheizi cout.tie(0);
using namespace std;
typedef long long LL;
const LL INF = 0x3f3f3f3f3f3f3f3f;
int g[1145][1411];
bool vis[114514];
int dist[114514];
int main() {
write by ikun_xiaoheizi
LL a, b;
cin >> a >> b;
int n = 2;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
g[i][j] = INF;
}
g[i][i] = 0;
}
g[0][1] = a + b;
for (int i = 0; i < n; i++) {
dist[i] = INF;
}
dist[0] = 0;
LL total = 0;
for (int i = 1; i <= n; i++) {
int u = -1;
for (int j = 0; j < n; j++) {
if (!vis[j] && (u == -1 || dist[j] < dist[u])) {
u = j;
}
}
vis[u] = 1;
if (i > 1) {
total += dist[u];
}
for (int j = 0; j < n; j++) {
if (!vis[j] && g[u][j] < dist[j]) {
dist[j] = g[u][j];
}
}
}
cout << total;
return 0;
}