poj 1679: The Unique MST【次小生成樹】

題目鏈接

參考博客

希望注釋足夠清楚。。歡迎指出不足~

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;const int maxn=110;
const int INF=0x3f3f3f3f;int n,m;
int mp[maxn][maxn];
int maxlen[maxn][maxn];        //maxlen[i][j]表示//生成樹上,從 點i到點j的所有邊中的最大邊長 
int dis[maxn],pre[maxn];    //dis表示的其實是邊長 
int vis[maxn];
int mst;int prim()
{mst=0;vis[1]=1;for(int i=1; i<=n; i++)dis[i]=mp[1][i],pre[i]=1;for(int i=1; i<n; i++)    //總共需要再加入n-1個節點 
    {int min_dis=INF,nx,pr;//nx表示下一個要進入MST中的結點//pr表示與nx相連的已經在MST中的結點//min_dis表示MST與V-MST間的最短距離 for(int j=1; j<=n; j++)if(!vis[j]&&dis[j]<min_dis)nx=j,min_dis=dis[nx];pr=pre[nx];mst+=mp[nx][pr]; maxlen[nx][pr]=maxlen[pr][nx]=mp[nx][pr];for(int j=1; j<=n; j++) if(vis[j])    //更新從j沿MST到nx的最小邊長 maxlen[j][nx]=maxlen[nx][j]=max(maxlen[j][pr],maxlen[nx][pr]);vis[nx]=1;for(int j=1;j<=n;j++)if(!vis[j]&&mp[nx][j]<dis[j])dis[j]=mp[nx][j],pre[j]=nx;}for(int i=1;i<n;i++)for(int j=i+1;j<=n;j++)if(pre[i]==j||pre[j]==i)    //此時邊i-j在MST中 continue; else if(maxlen[i][j]==mp[i][j])//存在不止一個MST return 0;return 1; //只有一個MST 
}void init()
{memset(mp,INF,sizeof(mp));memset(maxlen,-INF,sizeof(maxlen));    //之后要不斷取max進行更新 memset(vis,0,sizeof(vis));
}int main()
{int T;scanf("%d",&T);while(T--){init();scanf("%d%d",&n,&m);for(int i=0; i<m; i++){int u,v,w;scanf("%d%d%d",&u,&v,&w);mp[u][v]=mp[v][u]=w;}if(prim()) printf("%d\n",mst);else puts("Not Unique!");}
}

?

轉載于:https://www.cnblogs.com/Just--Do--It/p/6480663.html

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

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

相關文章

51. Python 數據處理(2)

1.Python 修改excel文件import xlrd import xlutils.copy excelr xlrd.open_workbook("hello.xlsx") excelw xlutils.copy.copy(excelr) sheet1 excelw.get_sheet(0) sheet1.write(3, 5, "xlutils.copy test test") excelw.save("hello.xlsx"…

人工智能十大流行算法

導讀&#xff1a;本文為有志于成為數據科學家或對此感興趣的讀者們介紹最流行的機器學習算法。 作者&#xff1a;Fahim ul Haq 譯者&#xff1a;劉志勇&#xff0c;策劃&#xff1a;趙鈺瑩 來源&#xff1a;InfoQ&#xff08;ID&#xff1a;infoqchina&#xff09; 機器學習是…

Win7+Win10雙系統安裝全攻略

安裝雙系統,不僅能給你非凡的體驗,還可以滿足工作中因系統版本,兼容性,處理器等原因帶來的不便。本文講解Win7+Win10雙系統安裝全攻略,親測可用。 1. 硬盤分區 本文講解利用固態硬盤+機械硬盤的分區方式。 固態硬盤:為了絕對提高系統運行的速度,將固態硬盤作為雙系統的…

[矩形并-掃描線-線段樹]Picture

最近在補數學和幾何&#xff0c;沒啥好寫的&#xff0c;因為已經決定每天至少寫一篇了&#xff0c;今天隨便拿個題水水。 題目大意&#xff1a;給你N個邊平行于坐標軸的矩形&#xff0c;求它們并的周長。(N<5000) 思路&#xff1a;這個數據范圍瞎暴力就過了&#xff0c;但我…

聊聊研發團隊中的“人”

大家好&#xff0c;我是Z哥。漢字博大精深&#xff0c;很多時候我們可以通過拆字來更形象地理解一個詞的含義。比如“團隊”這個詞的兩個字"團"和“隊”單獨看也都是表示一種由多人組成的組織。再做一下拆字就是“口”“才”和“耳”“人”。前者表示一個人才如果沒有…

[轉]【分布式系統】唯一ID生成策略總結

文章目錄 全局唯一id介紹 全局唯一id特點:常見全局唯一id生成策略 1、數據庫自增長序列或字段生成id 2、UUID 3、Redis生成ID 4、zookeeper生成ID 5、Twitter的snowflake算法全局唯一id介紹 系統唯一id是我們在設計階段常常遇到的問題。在復雜的分布式系統中&#…

shell在一個大文件找出想要的一段字符串操作技巧

昨天端午&#xff0c;晚上的時候接了一個電話&#xff0c;我朋友的公司&#xff0c;數據庫被兩個工作沒多久的phper給弄壞了&#xff0c;具體就是把一個字段值&#xff0c;給全表弄成一個了名字了&#xff0c;當然這個是可以配置了禁止全表更新數據庫,這下可急壞了&#xff0c;…

CentOS7安裝EPEL源

CentOS7安裝EPEL [lijiayuncentos-*** ~]$ yum install epel-release已加載插件&#xff1a;fastestmirror, langpacks您需要 root 權限執行此命令。[lijiayuncentos-*** ~]$ su密碼&#xff1a;[rootcentos-*** lijiayun]# yum install epel-release已加載插件&#xff1a;fas…

超全的開源Winform UI庫,滿足你的一切桌面開發需求!

本文有dotnet9站長整理 網址&#xff1a;https://dotnet9.com/本站曾介紹過一款Winform開源控件庫HZHControls&#xff0c;Winform在大家心中的地位還是挺高的&#xff0c;今天小編再分享一款新鮮出爐的 Winform UI庫——SunnyUI&#xff0c;一起跟 Dotnet9 往下看吧。項目名稱…

告別國外 IDE,阿里 螞蟻自研 IDE 研發框架 OpenSumi 正式開源

經歷近 3 年時間&#xff0c;在阿里集團及螞蟻集團共建小組的努力下&#xff0c;OpenSumi 作為國內首個強定制性、高性能&#xff0c;兼容 VS Code 插件體系的 IDE 研發框架&#xff0c;今天正式對外開源。 一 OpenSumi 是什么&#xff1f; OpenSumi 是一款面向垂直領域&#…

window-memcache技術隨筆

memcached.exe軟件放置到非中文,非空格的目錄,把MSVCR71.DLL文件放在memcached.exe同目錄下啟動,控制面板中打開window功能-Telnet客戶端memcache服務方法一:管理員身份打開黑窗口 d:(mem的所在盤)cd memmemcached.exe -p 11211方法二: 安裝為Windows的系統服務memcached.exe -…

將不確定變為確定~老趙寫的CodeTimer是代碼性能測試的利器

首先&#xff0c;非常感謝趙老大的CodeTimer&#xff0c;它讓我們更好的了解到代碼執行的性能&#xff0c;從而可以讓我們從性能的角度來考慮問題&#xff0c;有些東西可能我們認為是這樣的&#xff0c;但經理測試并非如何&#xff0c;這正應了我之前的那名話&#xff1a;“機器…

聊聊 C++ 中的幾種智能指針(下)

一&#xff1a;背景 上一篇我們聊到了C 的 auto_ptr &#xff0c;有朋友說已經在 C 17 中被棄用了&#xff0c;感謝朋友提醒&#xff0c;今天我們來聊一下 C 11 中引入的幾個智能指針。unique_ptrshared_ptrweak_ptr看看它們都怎么玩。二&#xff1a;三大智能指針詳解 1. uniq…

iOS回顧筆記( 02 ) -- 由九宮格布局引發的一系列“慘案”

iOS回顧筆記&#xff08; 02 &#xff09; -- 由九宮格布局引發的一系列“慘案” 前言&#xff08;扯幾句淡先&#xff09; 回顧到學習UI過程中的九宮格布局時&#xff0c;發現當時學的東西真是不少。 這個階段最大的特點就是&#xff1a;知識點繁多且瑣碎。 我們的目標就是要將…

【GlobalMapper精品教程】007:如何加載谷歌衛星影像?

“Global Mapper支持所有OGC標準數據源類型,例如用于流式柵格地圖的WMS / WMTS,用于矢量數據集的WFS和用于為指定區域下載單個數據文件的WCS。預先切片的圖像和地形數據集也可以使用OSM(OpenStreetMaps)、TMS(Tiled Map Service)和Google Maps瓦片架構支持。您只需要選擇適當…

LVS/keepalived配置

LVS/DR keepalived配置注意&#xff1a;前面雖然我們已經配置過一些操作&#xff0c;但是下面我們使用keepaliave操作和之前的操作是有些沖突的&#xff0c;所以若是之前配置過DR&#xff0c;請首先做如下操作&#xff1a;dr上執行&#xff1a;$ipv -Cifconfig eth0:0 down前…

Mysql清空表(truncate)與刪除表中數據(delete)的區別

2019獨角獸企業重金招聘Python工程師標準>>> 為某基于wordpress搭建的博客長久未除草&#xff0c;某天升級的時候發現已經被插入了幾萬條垃圾留言&#xff0c;如果一條條刪除那可真是累人的活。遂考慮直接進入mysql直接清空表或者刪除表中數據。 本文記錄一下這2種操…

[轉]云原生到底是什么?

&#x1f4cb; 個人簡介 &#x1f496; 作者簡介&#xff1a;大家好&#xff0c;我是阿牛&#x1f61c; &#x1f4dd; 個人主頁&#xff1a;館主阿牛&#x1f525; &#x1f389; 支持我&#xff1a;點贊&#x1f44d;收藏??留言&#x1f4dd; &#x1f4ac;格言&#xf…

【GlobalMapper精品教程】008:如何根據指定區域(shp、kml、cad)下載衛星影像?

本文講解在Globalmapper中根據指定的范圍(shp、kml、cad等格式)進行在線衛星影像的下載方法。 文章目錄 一、根據shp范圍下載谷歌影像1. 加載谷歌影像2. 加載shp矢量范圍3. 根據范圍導出影像二、根據kml范圍下載谷歌影像1. 生成研究區范圍kml2. 根據kml范圍下載影像三、根據CAD…

膛目結舌的代碼技巧!一看就是冷暴力~~~~

你見過哪些令你膛目結舌的代碼技巧&#xff1f; 代碼世界有很多令人大呼小叫的技巧&#xff01;有的代碼像魔術師一樣巧妙地隱藏了自己&#xff0c;有的像魔法師一樣讓你眼花繚亂&#xff0c;還有的像瑜伽大師一樣靈活自如。它們讓我們驚嘆不已&#xff0c;讓我們覺得自己仿佛置…