vaOJ10369 - Arctic Network

1 /*
 2     The first line of each test case contains 1 <= S <= 100, the number of satellite channels!
 3     注意:S表示一共有多少個衛星,那么就是有 最多有S-1個通道! 然后將最小生成樹中的后邊的 S-1通道去掉就行了! 
 4     思路:最小生成樹中的第 k 個最小邊! 
 5 */
 6 //克魯斯克爾算法.....
 7 #include<iostream>
 8 #include<cstdio>
 9 #include<cstring>
10 #include<algorithm>
11 #include<cmath>
12 using namespace std;
13 
14 double x[800], y[800];
15 
16 struct node{
17    int u, v; 
18    double d;
19 };
20 
21 bool cmp(node a, node b){
22     return a.d < b.d;
23 }
24 
25 int f[505];
26 
27 node nd[150000];
28 double ret[505];
29 
30 int getFather(int x){
31    return x==f[x] ? x : f[x]=getFather(f[x]);
32 }
33 
34 bool Union(int a, int b){
35    int fa=getFather(a), fb=getFather(b);
36    if(fa!=fb){
37        f[fa]=fb;
38        return true;
39    }
40    return false;
41 }
42 
43 int main(){
44    int n, m;
45    int t;
46    scanf("%d", &t);
47    while(t--){
48           scanf("%d%d", &m, &n);
49        for(int i=1; i<=n; ++i){
50           scanf("%lf%lf", &x[i], &y[i]);
51           f[i]=i;
52        }
53        int cnt=0;
54        for(int i=1; i<n; ++i)
55           for(int j=i+1; j<=n; ++j){
56               nd[cnt].u=i;
57               nd[cnt].v=j;
58               nd[cnt++].d=sqrt( (x[i]-x[j])*(x[i]-x[j]) + (y[i]-y[j])*(y[i]-y[j]));
59           }
60        sort(nd, nd+cnt, cmp);
61        int cc=0;
62        for(int i=0; i<cnt; ++i)
63           if(Union(nd[i].u, nd[i].v))
64              ret[cc++]=nd[i].d;
65         for(int i=0; i<cc; ++i)
66            cout<<ret[i]<<"fdsf"<<endl;
67        printf("%.2lf\n", ret[n-m-1]);
68    }
69    return 0;
70 }   

復制代碼
 1 //prim算法.......
 2 #include<iostream>
 3 #include<cstdio>
 4 #include<cstring>
 5 #include<algorithm>
 6 #include<cmath>
 7 using namespace std;
 8 const double INF = 0x3f3f3f3f*1.0;
 9 double x[800], y[800];
10 
11 int n, m;
12 double map[505][505];
13 int vis[505];
14 
15 double ret[505];
16 
17 void prim(){
18     memset(vis, 0, sizeof(vis));
19     vis[1]=1;
20     for(int i=2; i<=n; ++i)
21        ret[i]=INF;
22     int root=1, p;
23     for(int i=1; i<n; ++i){
24         double minLen=INF; 
25         for(int j=2; j<=n; ++j){
26            if(!vis[j] && ret[j]>map[root][j])
27               ret[j]=map[root][j];
28            if(!vis[j] && minLen>ret[j]){
29               minLen=ret[j];
30               p=j; 
31            }
32         }
33         root=p;
34         vis[root]=1;
35     }
36 }
37 
38 int main(){
39    
40    int t;
41    scanf("%d", &t);
42    while(t--){
43           scanf("%d%d", &m, &n);
44        for(int i=1; i<=n; ++i)
45           scanf("%lf%lf", &x[i], &y[i]);
46        for(int i=1; i<n; ++i)
47           for(int j=i+1; j<=n; ++j)
48              map[i][j]=map[j][i]=sqrt( (x[i]-x[j])*(x[i]-x[j]) + (y[i]-y[j])*(y[i]-y[j]));
49 
50        prim();
51        sort(ret, ret+n+1);
52        
53        printf("%.2lf\n", ret[n-m+1]);
54    }
55    return 0;
56 }
復制代碼

?

復制代碼









本文轉自 小眼兒 博客園博客,原文鏈接:http://www.cnblogs.com/hujunzheng/p/3899428.html,如需轉載請自行聯系原作者

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

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

相關文章

python-kafka 常用 api 匯總

簡介 python連接kafka的標準庫&#xff0c;kafka-python和pykafka。kafka-python使用的人多是比較成熟的庫&#xff0c;kafka-python并沒有zk的支持。pykafka是Samsa的升級版本&#xff0c;使用samsa連接zookeeper&#xff0c;生產者直接連接kafka服務器列表&#xff0c;消費者…

scp選擇二進制_二進制傳輸與文本傳輸區別

Ftp&#xff0c;winscp等工具下載文件時候有選項&#xff0c;可選的有二進制方式和文本方式。文本方式又稱為ASCII方式兩者區別如下。ASCII 方式和BINARY方式的區別是回車換行的處理&#xff0c;binary方式不對數據執行任何處理&#xff0c;ASCII 方式將回車換行轉換為本機的回…

在ffmpeg中加入x264模塊

引言&#xff1a;最近一直致力于多媒體應用開發&#xff0c;一說起編碼解碼就不得不說下FFmpeg。FFmpeg是一個集錄制、轉換、音/視頻編碼解碼功能為一體的完整的開源解決方案。FFmpeg的開發是基于Linux操作系統&#xff0c;但是可以在大多數操作系統中編譯和使用。下面就詳細介…

RabbitMQ實例教程:發布/訂閱者消息隊列

消息交換機&#xff08;Exchange&#xff09; RabbitMQ消息模型的核心理念是生產者永遠不會直接發送任何消息給隊列&#xff0c;一般的情況生產者甚至不知道消息應該發送到哪些隊列。 相反的&#xff0c;生產者只能發送消息給交換機&#xff08;Exchange&#xff09;。交換機的…

OAuth 2.0(網轉)

&#xff08;一&#xff09;背景知識 OAuth 2.0很可能是下一代的“用戶驗證和授權”標準&#xff0c;目前在國內還沒有很靠譜的技術資料。為了弘揚“開放精神”&#xff0c;讓業內的人更容易理解“開放平臺”相關技術&#xff0c;進而長遠地促進國內開放平臺領域的發展&#xf…

kafka 自動提交 和 手動提交

Consumer 需要向 Kafka 匯報自己的位移數據&#xff0c;這個匯報過程被稱為提交位移&#xff08;Committing Offsets&#xff09;。因為 Consumer 能夠同時消費多個分區的數據&#xff0c;所以位移的提交實際上是在分區粒度上進行的&#xff0c;即 Consumer 需要為分配給它的每…

axios vue 回調函數_vue中ajax請求與axios包完美處理

這次給大家帶來vue中ajax請求與axios包完美處理&#xff0c;vue中ajax請求與axios包處理的注意事項有哪些&#xff0c;下面就是實戰案例&#xff0c;一起來看一下。在vue中&#xff0c;經常會用到數據請求&#xff0c;常用的有&#xff1a;vue-resourse、axios今天我說的是axio…

用int還是用Integer?

昨天例行code review時大家有討論到int和Integer的比較和使用。 這里做個整理&#xff0c;發表一下個人的看法。【int和Integer的區別】int是java提供的8種原始類型之一&#xff0c;java為每個原始類型提供了封裝類&#xff0c;Integer是int的封裝類。int默認值是0&#xff0c;…

前端之 JavaScript 常用數據類型和操作

JavaScript 常用數據類型有&#xff1a;數字、字符串、布爾、Null、Undefined、對象 JavaScript 擁有動態類型 JavaScript 擁有動態類型。這意味著相同的變量可用作不同的類型 var x; // 此時x是undefined var x 1; // 此時x是數字 var x "Alex" …

mysql備份還原(視圖、存儲過程)

最近在備份還原mysql的時候發現&#xff0c;視圖還原報錯&#xff0c;無法創建視圖&#xff0c;在網上查了下資料&#xff0c;找到以下信息&#xff1a;1、如果備份的數據庫含有視圖,還原時需要把my.ini中的character-set改為latin1,才能夠還原視圖。2、還原后,需要把latin1改為…

有關javabean的說法不正確的是_關于 JavaBean, 下列敘述中不正確的是 ( ) 。_學小易找答案...

【填空題】在使用 URL 傳值時傳輸的數據只能是 類型。【簡答題】陶器是人類最偉大的發明,比四大發明更有意義,你如何認為?(手機上直接回答提交)【單選題】對于 ( ) 作用范圍的 Bean, 當客戶離開這個頁面時 JSP 引擎取消為客戶的該頁 面分配的 Bean, 釋放他所占的內存空間。【填…

Postgres中tuple的組裝與插入

1.相關的數據類型 我們先看相關的數據類型&#xff1a; HeapTupleData(src/include/access/htup.h) typedef struct HeapTupleData {uint32 t_len; /* length of *t_data */ItemPointerData t_self; /* SelfItemPointer */Oid t_tableOid; /* ta…

Python 自動生成環境依賴包 requirements

一、生成當前 python 環境 安裝的所有依賴包 1、命令 # cd 到項目路徑下&#xff0c;執行以下命令 pip freeze > requirements.txt# 或者使用如下命令 pip list --formatfreeze > requirements.txt 2、常見問題 1、中使用 pip freeze > requirements.txt 命令導出…

DenyHosts 加固centos系統安全

DenyHosts是Python語言寫的一個程序&#xff0c;它會分析sshd的日志文件&#xff08;/var/log/secure&#xff09;&#xff0c;當發現重 復的攻擊時就會記錄IP到/etc/hosts.deny文件&#xff0c;從而達到自動屏IP的功能 DenyHosts官方網站 http://denyhosts.sourceforge.net 下…

在windows xp下編譯出ffmpeg.exe

找了好多資料&#xff0c;把自己的編譯成功過程詳細敘述&#xff0c;以避免后來者可以少浪費點時間。 1.安裝MSys 到http://sourceforge.net/project/showfiles.php?group_id2435下載文件&#xff1a;   bash-3.1-MSYS-1.0.11-tar.bz2   msysCORE-1.0.11-2007.01.19-1.ta…

手機uc怎么放大頁面_手機網站怎樣做可以提高用戶體驗度?——竹晨網絡

目前&#xff0c;手機已經占據了人們大多數的閑暇時間&#xff0c;互聯網的流量開始逐漸向移動端傾斜&#xff0c;重視移動端的用戶體驗&#xff0c;就可以給客戶端增加很多意想不到的功能。但是還是有很多公司和站長不知道手機網站應該怎么建才能符合用戶的使用習慣。下面&…

科技申報項目總結

這個項目分為三大模塊&#xff0c;管理員&#xff0c;專家以及單位模塊&#xff0c;具體頁面有&#xff1a;1單位信息&#xff1b;2項目申報&#xff1b;3專家信息&#xff1b;4項目評審&#xff1b;5 項目信息&#xff1b;6申報設置&#xff1b;7專家信息。 —-項目框架SSM&am…

kafka 異常:ERROR Failed to clean up log for __consumer_offsets-30 in dir /tmp/kafka-logs due to IOExce

問題概述 kafka進程不定期掛掉。ERROR Failed to clean up log for __consumer_offsets-30 in dir /tmp/kafka-logs due to IOException (kafka.server.LogDirFailureChannel)&#xff0c;報錯如下 [2020-12-07 16:12:36,803] ERROR Failed to clean up log for __consumer_o…

樹形控件(CTreeCtrl和CTreeView)

如何插入數據項目&#xff1f;如何添加鼠標右擊事件&#xff1f;插入數據項 通過InsertItem()方法&#xff0c;有四種重載樣式: HTREEITEM InsertItem(LPTVINSERTSTRUCT lpInsertStruct); HTREEITEM InsertItem(UINT nMask, LPCTSTR lpszItem, int nImage,int nSelectedImage, …

ffmpeg編譯(生成Windows或Win32平臺dll, lib)

ffmpeg編譯(生成Windows或Win32平臺dll, lib) 介紹&#xff1a;本文簡要介紹通過cygwin環境來編譯生成ffmpeg。 包括解碼組件libfaad與libopencore-amrnb的編譯。 1)安裝msys mingw環境 具體安裝過程可以看網上教程 我用的是&#xff1a;http://code.google.com/p/msys-cn/ 假…