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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

BZOJ 1083: [SCOI2005]繁忙的都市【Kruscal最小生成树裸题】

發布時間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ 1083: [SCOI2005]繁忙的都市【Kruscal最小生成树裸题】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1083: [SCOI2005]繁忙的都市

Time Limit: 10 Sec??Memory Limit: 162 MB
Submit: 2925??Solved: 1927
[Submit][Status][Discuss]

Description

  城市C是一個非常繁忙的大都市,城市中的道路十分的擁擠,于是市長決定對其中的道路進行改造。城市C的道
路是這樣分布的:城市中有n個交叉路口,有些交叉路口之間有道路相連,兩個交叉路口之間最多有一條道路相連
接。這些道路是雙向的,且把所有的交叉路口直接或間接的連接起來了。每條道路都有一個分值,分值越小表示這
個道路越繁忙,越需要進行改造。但是市政府的資金有限,市長希望進行改造的道路越少越好,于是他提出下面的
要求: 1. 改造的那些道路能夠把所有的交叉路口直接或間接的連通起來。 2. 在滿足要求1的情況下,改造的
道路盡量少。 3. 在滿足要求1、2的情況下,改造的那些道路中分值最大的道路分值盡量小。任務:作為市規劃
局的你,應當作出最佳的決策,選擇那些道路應當被修建。

Input

  第一行有兩個整數n,m表示城市有n個交叉路口,m條道路。接下來m行是對每條道路的描述,u, v, c表示交叉
路口u和v之間有道路相連,分值為c。(1≤n≤300,1≤c≤10000)

Output

  兩個整數s, max,表示你選出了幾條道路,分值最大的那條道路的分值是多少。

Sample Input

4 5
1 2 3
1 4 5
2 4 7
2 3 6
3 4 8

Sample Output

3 6

HINT

Source

題目鏈接:http://www.lydsy.com/JudgeOnline/problem.php?id=1083

題意
給定一張圖,求其最小生成樹中權值最大的邊


要是學習過最小生成樹的相關概念,就會發現這道題就是直接考察的最小生成樹,只不過題目沒有問你最小生成樹的邊權和,而是讓你輸出最小生成樹有幾條邊(點數-1)和權值最大的那條邊的權值。


那么什么是生成樹呢?

In the mathematical field of graph theory, a spanning tree T of an undirected graph G is a subgraph that is a tree which includes all of the vertices of G. In general, a graph may have several spanning trees, but a graph that is not connected will not contain a spanning tree (but see Spanning forests below). If all of the edges of G are also edges of a spanning tree T of G, then G is a tree and is identical to T (that is, a tree has a unique spanning tree and it is itself).


Paste_Image.png

如上圖所示,生成樹就是在給定的圖中選取最少的邊使所有頂點連通,那么最小生成樹就是選取的邊的權值和最小。


了解了生成樹的概念,就很容易能明白生成樹只有n-1條邊,其中n表示頂點數。
那么怎么求最小生成樹呢?
這里我介紹kruscal算法。


克魯斯卡爾算法
該算法用到的是貪心思想,將所有的邊按權值排序,每次都選權值最小的邊,然后判斷這條邊的兩個頂點是否屬于同一個連通塊,如果不屬于同一個連通塊,那么這條邊就應屬于最小生成樹,逐漸進行下去,直到連通塊只剩下一個。


kruscal算法的模板代碼如下:

1 const int maxn=400;//最大點數 2 const int maxm=10000;//最大邊數 3 int n,m;//n表示點數,m表示邊數 4 struct edge{int u,v,w;} e[maxm];//u,v,w分別表示該邊的兩個頂點和權值 5 bool cmp(edge a,edge b) 6 { 7 return a.w<b.w; 8 } 9 int fa[maxn];//因為需要用到并查集來判斷兩個頂點是否屬于同一個連通塊 10 int find(int x) 11 { 12 if(x==fa[x]) return x; 13 else return fa[x]=find(fa[x]); 14 } 15 int kruscal() 16 { 17 int ans=-1; 18 sort(e+1,e+1+m,cmp); 19 for(int i=1;i<=n;++i) fa[i]=i;//初始化并查集 20 int cnt=n; 21 for(int i=1;i<=m;++i) 22 { 23 int t1=find(e[i].u); 24 int t2=find(e[i].v); 25 if(t1!=t2) 26 { 27 if(cnt==1) break; 28 fa[t1]=t2; 29 ans=max(ans,e[i].w); 30 cnt--; 31 } 32 } 33 return ans; 34 }

針對這道題,我們只需要把ans+=e[i].w改為ans=max(ans,e[i].w)就好了,至此問題得到了解決。

1 #include <bits/stdc++.h> 2 using namespace std; 3 const int maxn=400;///最大點數 4 const int maxm=10000;///最大邊數 5 int n,m;///n表示點數,m表示邊數 6 struct edge 7 { 8 int u,v,w;///u,v,w分別表示該邊的兩個頂點和權值 9 }e[maxm]; 10 bool cmp(edge a,edge b) 11 { 12 return a.w<b.w; 13 } 14 int fa[maxn];///判斷兩個點是否屬于同一個連通塊 15 int find(int x) 16 { 17 if(x==fa[x]) 18 return x; 19 else return fa[x]=find(fa[x]); 20 } 21 int kruscal() 22 { 23 int ans=-1; 24 sort(e+1,e+1+m,cmp); 25 for(int i=1;i<=n;i++) 26 fa[i]=i;///初始化并查集 27 int cnt=n; 28 for(int i=1;i<=m;i++) 29 { 30 int t1=find(e[i].u); 31 int t2=find(e[i].v); 32 if(t1!=t2) 33 { 34 if(cnt==1) 35 break; 36 fa[t1]=t2; 37 ///ans+=e[i].w; 38 ans=max(ans,e[i].w); 39 cnt--; 40 } 41 } 42 return ans; 43 } 44 int main() 45 { 46 cin>>n>>m; 47 for(int i=1;i<=m;i++) 48 { 49 cin>>e[i].u>>e[i].v>>e[i].w; 50 } 51 cout<<n-1<<" "; 52 cout<<kruscal()<<endl; 53 return 0; 54 }

?

轉載于:https://www.cnblogs.com/ECJTUACM-873284962/p/7141078.html

總結

以上是生活随笔為你收集整理的BZOJ 1083: [SCOI2005]繁忙的都市【Kruscal最小生成树裸题】的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产精品无码AV | 色婷婷婷婷 | 欧美日本一本 | 欧美性大战久久久久久久蜜桃 | 性欧美丰满熟妇xxxx性仙踪林 | 91免费观看入口 | 青青青草视频 | 女同一区二区三区 | 欧美一区二区三区视频在线观看 | aaa日韩| 波多野结衣视频免费看 | 黄色高清无遮挡 | 日韩激情视频在线观看 | 少女视频的播放方法 | 手机看片欧美日韩 | 成人av免费在线 | 日韩毛片在线看 | 久久成人18免费观看 | 欧美精品一区二区三区蜜臀 | 风韵少妇性饥渴推油按摩视频 | 91免费在线视频观看 | 黄色91免费观看 | 久草a视频 | 四虎影院在线免费播放 | 色噜噜亚洲| 日韩人妻无码一区二区三区 | 鲁丝一区二区三区 | 美国色综合 | 一区二区视频免费 | 久久av一区二区三区 | 亚洲AV成人无码一二三区在线 | 美女四肢被绑在床扒衣 | 日本免费福利视频 | 亚洲一级av毛片 | 椎名空在线观看 | 无码人妻丰满熟妇区bbbbxxxx | 国产免费午夜 | www.xxx亚洲 | 亚洲精品久久视频 | 国产精品玖玖玖 | 麻豆私人影院 | 老司机午夜免费精品视频 | 久九九| 特黄级 | 黄色av一区二区三区 | 一区二区视频 | 精品少妇无码av无码专区 | 欧美xxxbbb| 91黄色在线观看 | 欧美成人精品一区二区 | 国产精品毛片久久久久久久 | 天天插插插 | 色情毛片 | 日本精品免费一区二区三区 | 美女网站污 | 亚洲色图 校园春色 | 国产精品国产三级国产普通话蜜臀 | 涩涩屋视频 | 在线欧美色 | 色秀av | 日韩美女爱爱 | 亚洲国产aⅴ成人精品无吗 日韩乱论 | 夜夜春av| 日韩欧美电影一区二区三区 | 台湾佬美性中文网 | 日批免费观看视频 | 欧美日韩三级视频 | 四虎影院色 | 午夜视频黄色 | 国产不卡精品 | av黄色片在线观看 | 风流少妇一区二区三区91 | 欧美中文日韩 | 久久9久久| 成人免费观看视频网站 | 中文字幕国产在线观看 | 日日夜夜国产精品 | 中国女人av | 诱惑の诱惑筱田优在线播放 | 欧美丰满美乳xxⅹ高潮www | 中文字幕在线视频日韩 | 国产伦理片在线观看 | 狠狠狠狠狠狠狠干 | 亚洲性生活视频 | 丁香花免费高清完整在线播放 | 亚洲观看黄色网 | 免费观看久久久 | 1000部做爰免费视频 | 嫩草视频入口 | 亚洲h在线观看 | 中文字幕乱码av | 性欧美8khd高清极品 | 黄色91免费版 | 成人禁污污啪啪入口 | 国产精品一区二区在线看 | av电影在线播放 | 国产女人水真多18毛片18精品 | 黄色片在线观看视频 | a毛片基地|