struct Node{
int u,w;
};
int vis[N]={};
priority_queue<Node> q;
bool operator <(Node A,Node B){
return A.w>B.w;
}
int prim(){
int ret=0;
q.push((Node){1,0});
while(!q.empty()){
Node tmp=q.top();
q.pop();
int u=tmp.u;
if(vis[u])continue;
ret+=tmp.w;
vis[u]=1;
for(int i=first[u];i;i=e[i].nxt){
int v=e[i].v;
if(!vis[v]){
q.push((Node){v,e[i].w});
}
}
}
return ret;
} 模板最小生成树-Prime
最新推荐文章于 2024-11-13 09:17:40 发布
本文介绍了一种使用优先队列实现的Prim算法,用于求解带权无向图的最小生成树问题。通过定义结构体Node存储顶点及其权重,并使用优先队列优化边的选择过程,最终返回最小生成树的总权重。
3111

被折叠的 条评论
为什么被折叠?



