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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

poj3723Conscription

發布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 poj3723Conscription 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接:http://poj.org/problem?id=3723

建圖時將女生編號都加n(男生數目),求最大生成樹。

1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 const int maxn=10000+1; 6 struct node 7 { 8 int u,v,w; 9 }; 10 node map[5*maxn]; 11 int father[2*maxn]; 12 int n,m,r; 13 bool cmp(node x,node y) 14 { 15 return x.w>y.w; 16 } 17 void Init() 18 { 19 for(int i=0;i<n+m;i++) 20 father[i]=i; 21 } 22 int find_set(int x) 23 { 24 if(father[x]==x) 25 return x; 26 else 27 return father[x]=find_set(father[x]); 28 } 29 30 int kruskal() 31 { 32 int i,sum=0; 33 Init(); 34 sort(map,map+r,cmp); 35 for(i=0;i<r;i++) 36 { 37 38 int x=find_set(map[i].u); 39 int y=find_set(map[i].v); 40 if(x!=y) 41 { 42 father[y]=x; 43 sum+=map[i].w; 44 } 45 } 46 return sum; 47 } 48 int main() 49 { 50 int t,x,y,d; 51 scanf("%d",&t); 52 while(t--) 53 { 54 scanf("%d%d%d",&n,&m,&r); 55 for(int i=0;i<r;i++) 56 { 57 scanf("%d%d%d",&x,&y,&d); 58 map[i].u=x; 59 map[i].v=y+n; 60 map[i].w=d; 61 } 62 printf("%d\n",(n+m)*10000-kruskal()); 63 } 64 return 0; 65 }

?

轉載于:https://www.cnblogs.com/yijiull/p/6637852.html

總結

以上是生活随笔為你收集整理的poj3723Conscription的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。