AcWing 1146. 新的开始
原题链接
中等
作者:
林_15
,
2024-04-15 03:38:20
,
所有人可见
,
阅读 10
#include<iostream>
#include<algorithm>
#include<cstring>
#include <queue>
#define x first
#define y second
using namespace std;
typedef pair<int, int> PII;
const int N=310;
int n,k;
int w[N][N];
bool st[N];
int prim(int res = 0)
{
priority_queue<PII,vector<PII>,greater<PII>>heap;
heap.push({0,0});
while(heap.size())
{
auto [d , u] = heap.top();
heap.pop();
if(st[u]) continue;
st[u] = true;
res += d;
for(int i=1;i<=n;i++) heap.push({w[u][i],i});
}
return res;
}
int main()
{
cin >> n;
for(int i=0;i<=n;i++)
for(int j=1;j<=n;j++)
cin >> w[i][j];
cout << prim() << endl;
return 0;
}