poj 3522 枚举+kruskal

2015-07-20 17:53:36 · 作者: · 浏览: 4

过了样例就能AC

注意一点 0条边特意判断下。是否无法构成生成树也要判断

#include
  
   
#include
   
     #include
    
      using namespace std; #define maxn 110 int parent[maxn]; int N,M; struct edge { int u,v,w; }edges[maxn*maxn]; int cmp(void const *a,void const *b) { return ((struct edge *)a)->w-((struct edge *)b)->w; } int find(int a) { if(parent[a]==-1) return a; return find(parent[a]); } int krusal() { int i,j,k,m,n; int ans,tmp; qsort(edges,M,sizeof(edges[0]),cmp); ans=0x3fffffff; if(M==0) return -1; for(i=0;i