3725
mackentan
全部博文(13)
2010年(13)
aboutjim
lypat200
ooooldma
奋力一击
fireaxe
brucetee
shanck
xiaohuan
mengChin
分类: C/C++
2010-01-19 13:29:19
#include <stdio.h> #include <queue> #define MAX 100 using namespace std; typedef struct { int v1,v2,len; }Node; Node graph[MAX]; int fa[MAX]; bool operator >(Node a,Node b) { return a.len>b.len;} int Getfa(int i) { if(fa[i]==i) return i; fa[i]=Getfa(fa[i]); return fa[i]; } int main() { priority_queue<Node,vector<Node>,greater<Node> >Q; for(int i=1;i<=n;i++) fa[i]=i; while(!Q.empty()) Q.pop(); int v1,v2,len; while(true) { Node e; e.v1=v1,e.v2=v2,e.len=len; Q.push (e); } int sum=0; while(Q.size()!=0) { Node e=Q.top(); Q.pop(); if(Getfa(e.v1)!=Getfa(e.v2)) { sum+=len; fa[Getfa(e.v2)]=Getfa(e.v1 ); } } }
上一篇:Dijkstra算法
下一篇:匈牙利算法
登录 注册