POJ 1751 Highways

題意:n個城市,然后把n個城市的坐標都給你,然后給你m條已經修好的道路,然后給出m個已經修好道路的城市a,b,

However, they want to guarantee that every town is highway-reachable from every other town.

他們保證任何城市都是可以通過其他城市到達的

很明顯是個最小生成樹問題、

最后讓你輸出所有需要另外加的道路連接的兩個城市a b、

思路:先對所有n個城市求一遍距離、然后對已經修好道路的城市賦值為0、輸出的時候要使用一下前驅數組(用來記錄一個點的前驅是哪一個點)

?

 1 #include<cmath>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 const int qq=800;
 7 const int MAX=1e8;
 8 int n,m,sum;
 9 int map[qq][qq];
10 int cost[qq+300];
11 int vis[qq];
12 int pre[qq];
13 int x[qq],y[qq];
14 void prim()
15 {
16     memset(vis,0,sizeof(vis));
17     for(int i=1;i<=n;++i){
18         cost[i]=map[1][i];
19         pre[i]=1;            //初始化前驅、因為剛開始加的1,所以將每一個點的前驅設置為1 
20     }        
21     vis[1]=1;
22     int minx,k;
23     for(int i=1;i<=n;++i){
24         minx=MAX;
25         for(int j=1;j<=n;++j)
26             if(!vis[j] && cost[j]<minx)
27                 minx=cost[k=j];
28         if(map[pre[k]][k])    printf("%d %d\n",pre[k],k);    //當道路不存在時,輸出前驅、 
29         vis[k]=1;
30         for(int j=1;j<=n;++j)
31             if(map[k][j]<cost[j]){
32                 cost[j]=map[k][j];
33                 pre[j]=k;        //更新前驅、 
34             }    
35     }
36 }
37 int main()
38 {
39     scanf("%d",&n);
40     int i,j,a,b;
41     for(i=1;i<=n;++i){
42         scanf("%d%d",&x[i],&y[i]);
43         for(j=1;j<i;++j){
44             if(i==j)    map[i][j]=MAX;
45             else        map[i][j]=map[j][i]=(x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]);
46         }
47     }
48     scanf("%d",&m);
49     for(i=1;i<=m;++i){
50         scanf("%d%d",&a,&b);
51         map[a][b]=map[b][a]=0;
52     }
53     prim();    
54     return 0;
55 }

?

轉載于:https://www.cnblogs.com/sasuke-/p/5453283.html

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

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

相關文章

C語言編程中void什么意思,程序設計中遇到的void到底是什么意思

部分編程的初學者都會問"void是什么意思","為什么很多函數前都要加個void".實際上,void最簡單的解釋就是把0轉換成空類型的意思。下面用各個開發語言來詳解void1.C語言中的void表示空類型&#xff0c;它跟int&#xff0c;float是同地位的&#xff0c;一般用…

Linux中vim編輯器的縮進的功能鍵

vim編程時,經常需要對代碼進行縮進處理,以增加程序的可讀性和后期的代碼維護. 可以采用多種方式達到縮進的目的: 1) 命令模式(command mode) 2) Visual模式&#xff08;visual mode&#xff09; 2) 輸入模式(entry mode) 3) 末行模式(last-line mode) 4) 在/etc/vimrc有給予vim…

JSF 2,PrimeFaces 3,Spring 3和Hibernate 4集成項目

本文展示了如何集成JSF2&#xff0c;PrimeFaces3&#xff0c;Spring3和Hibernate4技術。 它為Java開發人員提供了一個通用的項目模板。 另外&#xff0c;如果Spring不用于業務和數據訪問層&#xff0c;則可以提供JSF – PrimeFaces和Hibernate集成項目。 二手技術&#xff1a…

c語言編程文件中刪除數據結構,C語言數據結構實戰(一)順序表的插入與刪除

今天學習了思成老師的數據結構實戰教程 寫了一個順序表 插入和刪除的操作 把源碼共享給大家 一共包括list.c stu.h main.c list.h .h文件是頭文件 需要引入 具體的功能我都已經在代碼中寫明了list.h代碼如下&#xff1a;//線性表的定義在頭文件中實現#ifndef _LIST_H#define …

內存使用分析工具Valgrind簡單用法

轉載自 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html 暫時還未使用過&#xff0c;記錄下&#xff0c;記錄下&#xff0c;記錄下 Valgrind的主要作者Julian Seward剛獲得了今年的Google-OReilly開源大獎之一──Best Tool Maker。讓我們一起來看一下他的作品…

Lucene概述第一部分:創建索引

介紹 我最近一直在與開源搜索引擎Lucene合作 。 我不是專家&#xff0c;但是由于我只是瀏覽了一些相當稀疏的文檔并將應用程序從Lucene的很舊的版本遷移到了最新版本的2.4&#xff0c;所以我在總體上很清楚。 Lucene的文檔有點讓人難以想象&#xff0c;因此我想趁此機會在我腦海…

初識openstack

一、 什么是openstack&#xff1f; OpenStack是一個由NASA&#xff08;美國國家航空航天局&#xff09;和Rackspace合作研發并發起的&#xff0c;以Apache許可證授權的自由軟件和開放源代碼項目。 二、openstack前世今身 openstack是一個跟Eucalyptus,AWS(Amazon web Service)類…

c語言case多語句的取值,Switch Case語句中多個值匹配同一個代碼塊的寫法

C&num;&plus;JQuery&plus;&period;Ashx&plus;百度Echarts實現全國省市地圖和餅狀圖動態數據圖形報表的統計在目前的一個項目中,需要用到報表表現數據,這些數據有多個維度,需要同時表現出來,同時可能會有大量數據呈現的需求,經過幾輪挑選,最終選擇了百度的e…

php解決下單、抽獎并發導致的庫存負數的問題

我們知道數據庫處理sql是一條條處理的&#xff0c;假設購買商品的流程是這樣的&#xff1a; sql1:查詢商品庫存 if(庫存數量 > 0) { //生成訂單... sql2:庫存-1 } 當沒有并發時&#xff0c;上面的流程看起來是如此完美&#xff0c;假設同時兩個人下單&#xff0c;而…

在Spring中使用JDBCJobStore配置Quartz

我將開始一些有關Quartz Scheduler內部&#xff0c;提示和技巧的系列文章&#xff0c;這是第0章-如何配置持久性作業存儲。 在Quartz中&#xff0c;您基本上可以在將作業和觸發器存儲在內存中以及在關系數據庫中進行選擇&#xff08; Terracotta是最近添加的混合功能&#xff0…

rlwrap插件,實現sqlplus上下翻頁

oracle在Linux下&#xff0c;sqlplus中不能上下翻&#xff0c;最主要我經常打錯字&#xff01;嘿嘿 01、下載 RPM &#xff1a;http://rpmfind.net/linux/rpm2html/search.php?queryrlwrap tar.gz:https://fossies.org/linux/privat/rlwrap-0.42.tar.gz/ 百度云&#xff1a;h…

ice庫c語言例子,很不多的ICE架構入門學習例子

雖然使用傳統的SOCKET編程&#xff0c;我們可以更為清楚程序的性能&#xff0c;能夠更直接的操控SOCKET的設置&#xff0c;比如發送超時時間&#xff0c;接受BUFFER的大小&#xff0c;以及進行自己的協議加密。但是由于其調試成本較高&#xff0c;且不易于分布式部署ICE 作為一…

程序員的十個層次,你屬于哪一層?(轉)

自西方文藝復興以來&#xff0c;中國在自然科學方面落后西方很多&#xff0c;軟件領域也不例外。當然現在中國的許多程序員們對此可能有許多不同的意見&#xff0c;有些人認為中國的程序員水平遠落后于西方&#xff0c;有些則認為中國的程序員個人能力并不比西方的程序員差&…

操作系統基礎篇

程序運行的4個因素 (1).程序設計語言 (2).編譯系統 (3).操作系統 (4).指令集結構&#xff08;硬件系統&#xff09; 操作系統的定義&#xff1a;操作系統是掌控計算機上所有事情的軟件系統(硬件資源&#xff0c;軟件資源) 操作系統對內存&#xff0c;i/o&#xff0c;cpu&#x…

高效快速中值濾波算法c語言,快速中值濾波及c語言實現.docx

...快速中值濾波及c語言實現學生姓名&#xff1a; 劉 勇 學 號&#xff1a; 6100410218 專業班級&#xff1a; 數媒101【摘要】本文討論了用c語言在微機上實現中值濾波及快速算法&#xff0c;在程序設計的過程中充分考慮到程序運行的時間復雜度和空間復雜度的問題&#xff0e;解…

Arquillian 1.0.0.Final正式發布! 準備使用GlassFish和WebLogic! 殺死所有蟲子!

紅帽公司和JBoss社區今天宣布的1.0.0.Final發布的Arquillian &#xff0c;其屢獲殊榮的建在Java虛擬機&#xff08;JVM&#xff09;運行測試平臺。 Arquillian大大減少了編寫和執行Java中間件集成和功能測試所需的工作。 它甚至使測試工程師能夠解決以前認為無法測試或測試成本…

Jquery選擇器特殊字符問題

場景&#xff1a; $("#" AAA "")&#xff0c;AAA代表某表單ID 當AAA為普通字符串時&#xff0c;ok&#xff1b; 當AAA含有特殊符號時&#xff08;eg:a.b&#xff09;&#xff0c;獲取不到該對象&#xff1b; 原因&#xff1a;特殊符號會進行轉義&#xf…

qq五筆linux,QQ五筆 - 五筆小字典 QQ綁定很實用

九、 智能調頻、空碼檢索、詞序固定在QQ五筆中還有一些小亮點&#xff0c;比如它可以根據“最近輸入”、“輸入次數”對候選詞排序。同時為了加快檢索速度&#xff0c;默認只在常用字庫(GB2312)中檢索&#xff0c;只有出現空碼后才會繼續搜索容量更大的GBK字庫&#xff0c;很好…

DFS:C 小Y的難題(1)

解題心得&#xff1a; 1、在明確使用DFS之后一定要找到遞歸函數的出口、方向&#xff0c;以及遞歸的點&#xff08;在某個情況下開始遞歸&#xff09;(void 也可以return&#xff0c;但是沒有返回值)。遞歸時也要有遞歸的方向&#xff0c;最后都能夠達到遞歸的出口。 2、在DF…

使用ActiveMQ支持Spring Integration路由

正如我在上 一篇 文章中所討論的那樣 &#xff0c;Spring Integration&#xff08;SI&#xff09; 是在Spring Framework之上構建的路由框架 &#xff0c;它使您可以使用經過驗證的企業集成模式來通過消息傳遞解決系統集成問題。 配置好SI并執行路由和中介邏輯后&#xff0c;您…