用的最小(大)生成树
数据下载下来是对的,但是显示RE
数据输入:
3 2
2 3 83
3 1 102
数据输出:
185
#include<bits/stdc++.h>
using namespace std;
struct node{
int v,w;
};
struct cmp{
bool operator()(node x,node y){
return x.w<y.w;
}
};
int cnt;
int ans;
vector<node> g[5005];
int vis[5005];
int n,m;
int bfs(int st){
priority_queue<node,vector<node>,cmp> q;
q.push(node{st,0});
while(q.size()){
node u;
u=q.top();
q.pop();
if(vis[u.v]==1) continue;
vis[u.v]=1;
cnt+=u.w;
for(int i=0;i<g[u.v].size();i++){
if(vis[g[u.v][i].v]==0){
q.push((node){g[u.v][i].v,g[u.v][i].w});
}
}
}
}
int main(){
cin>>n>>m;
for(int i=0;i<m;i++){
int u,v,w;
cin>>u>>v>>w;
g[u].push_back((node){v,w});
g[v].push_back((node){u,w});
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++) vis[j]=0;
cnt=0;
bfs(i);
ans=max(ans,cnt);
}
cout<<ans;
return 0;
}