医院网站建设公司,点金推广优化公司,seo群发软件,wordpress ftp主机这题很简单#xff0c;我差不多15分钟就写好代码了#xff0c;运行结果也是正确的。可提交就是RE#xff0c;百思不得其解#xff0c;调了两个小时的时候#xff0c;我才忽然发现我存边的时候数组开小了#xff0c;我当时也想到肯定是数组问题#xff0c;但是我却忽律了…这题很简单我差不多15分钟就写好代码了运行结果也是正确的。可提交就是RE百思不得其解调了两个小时的时候我才忽然发现我存边的时候数组开小了我当时也想到肯定是数组问题但是我却忽律了图的边不等于顶点的个数我是拿顶点个数来开的数组我不是用矩阵存的。改过之后就AC了。 1 #includeiostream 2 #includealgorithm 3 using namespace std; 4 #define MAXN 110 5 struct edge{ 6 int s; 7 int e; 8 int dis; 9 }a[MAXN*60];10 11 int N,Q,pre[MAXN],rank[MAXN];12 13 void init(){14 int i;15 for(i1;iN;i){16 pre[i]-1;17 rank[i]1;18 }19 }20 21 int find(int i){22 if(pre[i]-1) return i;23 else return pre[i]find(pre[i]);24 }25 26 void Union(int i,int j){27 ifind(i);28 jfind(j);29 if(ij) return;30 int temprank[i]rank[j];31 if(rank[i]rank[j]){32 pre[i]j;33 rank[j]temp;34 }35 else{36 pre[j]i;37 rank[i]temp;38 }39 }40 int cmp(const void *c,const void *b){41 return (*(edge*)c).dis-(*(edge*)b).dis;42 }43 int main(){44 int i,j,k,temp;45 int z,y,sum;46 while(scanf(%d,N)!-1){ 47 k0;48 for(i1;iN;i){49 for(j1;ji;j) scanf(%d,temp);50 for(;jN;j){51 scanf(%d,temp);52 a[k].si;53 a[k].ej;54 a[k].distemp;55 k;56 }57 }58 qsort(a,k,sizeof(a[0]),cmp);59 init();60 scanf(%d,Q);61 while(Q--){62 scanf(%d%d,z,y);63 Union(z,y);64 }65 sum0;66 for(i0;ik;i){67 if(find(a[i].s)!find(a[i].e)){68 suma[i].dis;69 Union(a[i].s,a[i].e);70 }71 }72 printf(%d\n,sum);73 } 74 } 转载于:https://www.cnblogs.com/saintqdd/archive/2007/11/07/951690.html