最短網絡Agri-Net

【例4-11】、最短網絡Agri-Net
【問題描述】
農民約翰被選為他們鎮的鎮長!他其中一個競選承諾就是在鎮上建立起互聯網,并連接到所有的農場。當然,他需要你的幫助。約翰已經給他的農場安排了一條高速的網絡線路,他想把這條線路共享給其他農場。為了用最小的消費,他想鋪設最短的光纖去連接所有的農場。你將得到一份各農場之間連接費用的列表,你必須找出能連接所有農場并所用光纖最短的方案。每兩個農場間的距離不會超過100000。
【輸出格式】
只有一個輸出,其中包含連接到每個農場的光纖的最小長度。
【輸入樣例】agrinet.in
4
0? 4? 9? 21
4? 0? 8? 17
9? 8? 0? 16
21 17 16? 0
【輸出樣例】agrinet.out
28
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 using namespace std;
 5 struct k{
 6     int x,y,v;
 7     
 8 }a[10000];
 9 int fa[1000];
10 int find(int x)
11 {
12     if(fa[x]!=x)
13     {fa[x]=find(fa[x]);
14     return fa[x];
15     }
16     else
17     return x;
18 }
19 void un(int x,int y)
20 {
21     fa[x]=y;
22 }
23 int cmp( k a, k b)      
24 {
25      if (a.v < b.v) return 1;
26         else return 0; 
27 }
28 int main()
29 {
30     int s,m=0;
31     int n;
32     cin>>n;
33     for(int i=1;i<=n;i++)
34      {
35          for(int j=1;j<=n;j++)
36           {
37               cin>>s;
38               if(s!=0)
39                {
40                    m++;
41                    a[m].x=i;
42                    a[m].y=j;
43                    a[m].v=s;
44                }
45           }
46      }
47      for(int i=1;i<=n;i++)
48       {
49           fa[i]=i;
50       }
51       sort(a+1,a+m+1,cmp);
52       int k=0,tot=0;
53      for(int i=1;i<=m;i++)
54       {
55           int r=find(a[i].x);
56           int rr=find(a[i].y);
57           if(r!=rr)
58            {
59                un(r,rr);
60                tot+=a[i].v;
61                k++;
62            }
63         if(k==n-1)
64          {
65              break;
66          }
67       }
68       cout<<tot;
69     return 0;
70 }

?

【輸入格式】
第一行:
農場的個數,N3<=N<=100)。
第二行..結尾
后來的行包含了一個N*N的矩陣,表示每個農場之間的距離。理論上,他們是N行,每行由N個用空格分隔的數組成,實際上,他們限制在80個字符,因此,某些行會緊接著另一些行。當然,對角線將會是0,因為不會有線路從第i個農場到它本身。

轉載于:https://www.cnblogs.com/lyqlyq/p/6706111.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372392.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372392.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372392.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

cors-synchronous-requests-not-working-in-firefox

http://stackoverflow.com/questions/16668386/cors-synchronous-requests-not-working-in-firefox轉載于:https://www.cnblogs.com/diyunpeng/p/5829594.html

硬盤接口協議

硬盤是電腦主要的存儲媒介之一&#xff0c;由一個或者多個鋁制或者玻璃制的碟片組成。碟片外覆蓋有鐵磁性材料。硬盤有固態硬盤&#xff08;SSD 盤&#xff0c;新式硬盤&#xff09;、機械硬盤&#xff08;HDD 傳統硬盤&#xff09;、混合硬盤&#xff08;HHD 一塊基于傳統機械…

圖的表示

Python 數據結構與算法——圖&#xff08;Graph&#xff09; 1. 鄰接矩陣 vs 鄰接表&#xff08;壓縮的鄰接矩陣&#xff09; 鄰接矩陣的缺點是&#xff1a; 空間占用與結點數的平方成正比&#xff0c;可能帶來很大的浪費&#xff1b;鄰接矩陣不容易增加新的結點&#xff0c;不…

在Java Web應用程序中阻止CSRF

跨站點請求偽造攻擊&#xff08;CSRF&#xff09;在Web應用程序中非常常見&#xff0c;如果允許&#xff0c;可能會造成重大危害。 如果您從未聽說過CSRF&#xff0c;建議您查看有關它的OWASP頁面 。 幸運的是&#xff0c;阻止CSRF攻擊非常簡單&#xff0c;我將向您展示它們的工…

windows命令行無法啟動redis_windows系統安裝redis

1、下載最新redis https://github.com/MicrosoftArchive/redis/releases我選擇下載msi版本的2.雙擊下載包安裝3.設置redis環境變量&#xff0c;把redis路徑配置到系統變量path值中4啟動redis&#xff0c;cmd進入安裝好redis文件夾 輸入&#xff1a;如果redis啟動出錯Creating S…

SQL Server 篩選時間區間

一、SQL直接判斷 select * from login where pass>2013/03/25 and pass < 2017/04/24 二、DATEDIFF() 函數返回兩個日期之間的時間 --語法 DATEDIFF(datepart,startdate,enddate) --開始時間 startdate --結束時間 enddate --datepart datepart縮寫年yy, yyyy季度qq, …

OpenShift Express Web管理控制臺:入門

本周&#xff0c; 最新版本的OpenShift為已經很棒的PaaS Cloud提供商帶來了兩個非常好的功能。 首先&#xff0c;JBoss AS已從7.0升級到7.1&#xff0c;并且所有新的Express Web Management Console已作為預覽發布。 在本文中&#xff0c;我們將研究如何使用此新控制臺&#xf…

Linux-IP地址后邊加個/8(16,24,32)是什么意思?

是掩碼的位數 A類IP地址的默認子網掩碼為255.0.0.0&#xff08;由于255相當于二進制的8位1&#xff0c;所以也縮寫成“/8”&#xff0c;表示網絡號占了8位&#xff09;; B類的為255.255.0.0&#xff08;/16&#xff09;; C類的為255.255.255.0(/24) /30就是255…

女士細線毛衣起多少針_從起針到縫合,教你織毛衣的各種要點(詳細教程)

新手學織毛衣看過來&#xff0c;7大編織要點幫你解決織好一件毛衣的基礎問題&#xff0c;滿滿的干貨&#xff0c;每點都值得學習!一、起針二、棒針符號三、如何織小樣四、依據小樣推算針數收掛肩的推算五、斜肩針數的推算開前、后領的位置與針數六、袖山的推算七、如何上袖子一…

關于OPENSSL的使用

#import <Foundation/Foundation.h> interface RSAEncryptor : NSObject /** * 加密方法 * * param str 需要加密的字符串 * param path .der格式的公鑰文件路徑 */ (NSString *)encryptString:(NSString *)str publicKeyWithContentsOfFile:(NSString *)path; /*…

Jelastic Java云端平臺

誰在Jelastic背后&#xff1f; 那是我的第一個問題&#xff0c;因此我瀏覽了Jelastic網站。 回答此問題的最佳方法是查看“ Jelastic團隊”部分。 創始人&#xff0c;顧問&#xff0c;特殊合作伙伴構成了一支真正的專業團隊。 作為特殊的合作伙伴&#xff0c;您會發現MySQL&am…

請先設置tkk_攪拌站水泥罐倉頂除塵器設置及調整

攪拌站水泥罐倉頂除塵器采用脈沖噴吹清灰系統&#xff0c;除塵器本體結構&#xff0c;采用標準模板焊接&#xff0c;整體結構&#xff0c;強度牢靠&#xff0c;組裝維修方便&#xff0c;脈沖清灰采用時序控制器MCY系列?控制閥門KEK系列&#xff0c;噴吹清灰頻率及噴吹間隔可手…

Eclipse Meaven Spring SpringMVC Mybaits整合

本示例是在&#xff1a;Ubuntu15上實現的&#xff1b;Windows上安裝Maven將不太相同。 Maven Install Run command sudo apt-get install maven, to install the latest Apache Maven.Run command mvn -version to verify your installation.Where is Maven installed? The co…

抽象類和抽象函數

1.抽象函數的語法特征 什么是抽象函數&#xff1f; 只有函數的定義,沒有函數體的函數被稱為抽象函數&#xff1b; Abstract void fun(); 如果一個類擁有一個或一個以上的抽象函數&#xff0c;那么這個類必須被定義為抽象類 2.抽象類的語法特征 使用abstract定義的類被稱之…

并發–執行程序和Spring集成

基于線程池/執行器的實現 比原始線程版本更好的方法是基于線程池的線程池&#xff0c;其中基于運行任務的系統定義了適當的線程池大小– CPU數量/&#xff08;任務的1-Blocking Coefficient&#xff09;。 Venkat Subramaniams書中有更多詳細信息&#xff1a; 首先&#xff0c…

后面的參數_英特爾I系列CPU大家都知道,后面的參數你有沒有了解過

嗨&#xff01;大家好&#xff0c;我是偉仔&#xff0c;今天主要是和大家聊下CPU。大多數人買筆記本或臺式電腦對CPU的要求就知道I5或者I7之類的。像是I7一定比I5要好&#xff0c;I3很LOU這樣的&#xff0c;當然這樣子的觀點是不正確的&#xff0c;今天我會告訴大家&#xff0c…

設置Linux保留物理內存並使用 (1)

在Linux系統中可以通過memblock來設置系統保留物理內存&#xff0c;防止這些內存被內存管理系統分配出去。 作者&#xff1a; 彭東林 郵箱&#xff1a; pengdonglin137163.com 平臺 硬件平臺&#xff1a; TQ2440 Linux版本&#xff1a;Linux 3.14.45 說明 1. 在tq2440上&#x…

移動端

http://www.w3cplus.com/mobile/lib-flexible-for-html5-layout.html 移動端手淘使用方案 移動端px自動轉換rem插件 CSSREM Flexible 轉載于:https://www.cnblogs.com/yuruiweb/p/6723580.html

OutOfMemoryError:Java堆空間–分析和解決方法

java.lang.OutOfMemoryError&#xff1a;Java堆問題是在支持或開發復雜的Java EE應用程序時可能會遇到的最復雜的問題之一。 這篇簡短的文章將為您提供此JVM HotSpot OutOfMemoryError錯誤消息的描述&#xff0c;以及在解決該問題之前應如何解決此問題。 有關如何確定要處理的O…

函數偽代碼_Excel常用函數

歡迎大家在此收看任我行office教程系列&#xff0c;這一期我來為大家講什么內容呢&#xff0c;那就是幾個office的幾個常用函數了&#xff0c;如果您不會這些函數和函數嵌套那么您的Excel電子表格也就別玩了哈&#xff0c;那么他們分別是什么函數呢。咱們現在隆重有請這幾位函數…