#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a[1005][1005],dis[1005],sum;
bool vis[1000005];
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
memset(dis,INT_MAX,sizeof(dis));
dis[1]=0;
cin>>n;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++) {
cin>>a[i][j];
}
for(int t=1; t<=n; t++) {
int k=0;
for(int i=1; i<=n; i++)
if(!vis[i]&&dis[i]<dis[k])
k=i;
vis[k]=1;
for(int i=1; i<=n; i++) {
if(a[k][i]&&a[k][i]<dis[i]&&!vis[i])dis[i]=a[k][i];
}
}
for(int i=1; i<=n; i++)sum+=dis[i];
cout<<sum;
}
我甚至和题解一个一个字对了一遍,但我还是样例都没过。
我写的prim