玄关求调!
查看原帖
玄关求调!
1073331
_TAT_楼主2024/7/16 16:40

用的最小(大)生成树

数据下载下来是对的,但是显示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;
}
2024/7/16 16:40
加载中...