#include#include\using namespace std;\int x, y, _k, l, n, m, e[1000][1000], f[1000], sum = 0, cnt, book[1000];\int find(int x){\ if (x == f[x])\ return x;\ else\ return f[x] = find(f[x]);}\int main(){\ cin >> n >> m >> _k;\ for (int i = 1; i <= n; i++)\ {\ f[i] = i;\ }\ for (int i = 1; i <= n; i++)\ {\ for (int j = 1; j <= n; j++)\ {\ e[i][j] = 11;\ if (i == j)\ e[i][j] = 0;\ }\ }\ for (int i = 1; i <= m; i++)\ {\ cin >> x >> y >> l;\ e[x][y] = l;\ e[y][x] = l;\ }\ for (int i = 1; i <= _k; i++)\ {\ for (int j = 1; j <= n; j++)\ {\ int min = 11, minn = -1;\ for (int k = 1; k <= n; k++)\ {\ if (e[j][k] < min && find(j) != find(k) && !book[k])\ {\ min = e[j][k];\ minn = k;\ }\ }\ f[find(minn)] = find(j);\ sum += min;\ book[minn] = 1;\ }\ cnt++;\ }\ if (cnt < _k)\ cout << "No Answer";\ else\ cout << sum;\ return 0;}


原文地址: https://www.cveoy.top/t/topic/pD2I 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录