日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

zoj 3204 Connect them kruskal

發(fā)布時(shí)間:2024/2/28 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 zoj 3204 Connect them kruskal 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?kruskal模板題

#include <iostream> #include <cstdio> #include <algorithm> #define MAX 102 using namespace std;struct edge {int x,y,w;edge(int x=0,int y=0,int w=0):x(x),y(y),w(w) {} } e[MAX*MAX]; struct node {int x,y; } pp[MAX*MAX];int T,n,num,ppnum; int fa[MAX];int getfather(int x) {if(x==fa[x])return x;else return fa[x]=getfather(fa[x]); }int cmp(struct edge aaa,struct edge bbb) {if(aaa.w==bbb.w){if(aaa.x==bbb.x) return aaa.y<bbb.y;else return aaa.x<bbb.x;}else return aaa.w<bbb.w; } int cmp1(struct node aa,struct node bb) {if(aa.x==bb.x) return aa.y<bb.y;else return aa.x<bb.x; } void kruscal() {int i;sort(e,e+num,cmp);int cnt=n;for(i=1; i<=n; i++)fa[i]=i;for(i=0; i<num; i++){int t1=getfather(e[i].x);int t2=getfather(e[i].y);if(t1!=t2){pp[ppnum].x=e[i].x;pp[ppnum].y=e[i].y;ppnum++;fa[t1]=t2;cnt--;if(cnt==1)break;}}if(cnt>1) {printf("-1\n");ppnum=0;} }int main() {int i,j;int a[102][102];scanf("%d",&T);while(T--){num=0;scanf("%d",&n);for(i=1; i<=n; i++)for(j=1; j<=n; j++)scanf("%d",&a[i][j]);for(i=1; i<n; i++)for(j=i+1; j<=n; j++)if(a[i][j]>0){e[num].x=i;e[num].y=j;e[num].w=a[i][j];num++;}ppnum=0;kruscal();sort(pp,pp+ppnum,cmp1);for(i=0;i<ppnum;i++){if(i!=ppnum-1){printf("%d %d ",pp[i].x,pp[i].y);}else printf("%d %d\n",pp[i].x,pp[i].y);}}return 0; }

超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的zoj 3204 Connect them kruskal的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。