- 问答
到底哪里出错了???(阴暗爬行/尖叫/扭曲)
- @ 2026-10-27 16:58:15
#include <bits/stdc++.h> using namespace std; const int INF=0x3fffffff; int n,m,cnt,sum; int G[110][110]; bool vis[110]; int dis[110]; int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(i==j){ G[i][j]=0; } else{ G[i][j]=INF; } } } for(int i=1;i<=m;i++){ int u,v,w; cin>>u>>v>>w; G[u][v]=G[v][u]=w; } for(int i=1;i<=n;i++){ dis[i]=G[1][i]; } int min; vis[1]=1; cnt++; while(cnt<n){ min=INF; for(int i=1;i<=n;i++){ if(!vis[i] && dis[i] < min){ min=dis[i]; j=i; } } vis[j]=1; cnt++; sum+=min; for(int i=1;i<=n;i++){ if(!vis[i] && G[j][i] < dis[i]){ dis[i]=G[j][i]; } } } return 0; }