2018.10.26 NOIP模擬 圖(最小生成樹+線段樹合併)
傳送門
首先最開始說的那個一條路徑的權值就是想告訴你兩個點之間的貢獻就是瓶頸邊的權值。
那麼肯定要用最小生成樹演算法。
於是我考場上想了30min+的樹形dp
發現轉移是優秀的nlogn,總時間複雜度O(n2logn)妙啊
然後有了棄療的想法。
突然想到沒有利用kruskal演算法的性質。
其實就是一個kruskal重構樹用到的思想,對於兩個連通塊,當前這條將它們連線起來的邊是兩個連通塊的點連通的瓶頸
這就好辦了。
只用算出這條邊貢獻了幾次就行了。
咦線段樹合併可做啊總複雜度O(nlogn2)妙啊
咦等等好像啟發式合併更好寫啊。
咦等等…
終於等到了一個妙不可言的時刻。
我發現題目給的式子可以變形啊!
設對於限制∣Cu−Cv∣≥L中較大的數為x,較小的數為y.
=>x≥y+L
=>x>y+L−1
那麼對於所有點,我們將Ci和Ci+L−1共同離散化。
然後對Ci和Ci+L−1分別維護兩種權值線段樹。
之後直接線段樹合併就行了。
時間複雜度O(nlogn)吊了標算?妙啊
放一波程式碼
相關推薦
2018.10.26 NOIP模擬 圖(最小生成樹+線段樹合併)
傳送門 首先最開始說的那個一條路徑的權值就是想告訴你兩個點之間的貢獻就是瓶頸邊的權值。 那麼肯定要用最小生成樹演算法。 於是我考場上想了30min+30min+30min+的樹形dpdpdp 發現轉移是
2018.10.09 NOIP模擬 世界盃(圖論+set優化)
傳送門 貌似是防akakak題? 不是很清楚。 事實上如果兩個人沒有嚴格的大小關係,我們給他們兩個連一條邊。 這樣可以構成很多連通塊。 而且對於連通塊a,ba,ba,b,aia_iai和bjb_jbj
2018.10.02 NOIP模擬 聚會(字首和)
描述 在成都的一條街道上,一共有 N戶人家,每個家庭有 Xi 個人,他們和諧的生活在 一起,作為全國和諧街道,他們經常會小範圍組織活動,每次活動會選擇一戶作為聚點, 並要求某些家庭參加,為了方便通知,村
2018.10.04 NOIP模擬 排隊(組合數學)
描述 在成都某中學有m個男生與n個女生排隊,這個學校的女生比較古怪,從某個位置(包含這個位置)開始往前數,男生的數量超過了女生的數量,女生會感覺不安全,於是會大叫起來,為了構建和諧校園,安排隊伍時應該避
2018.10.04 NOIP模擬 航班(tarjan+樹形)
描述 L因為業務繁忙,經常會到處出差。因為他是航空公司的優質客戶,於是某個航空公司給了他一個優惠券。 他可以利用這個優惠券在任何一個國家內的任意城市間免費旅行,當他的路線跨國才會產生費用。L有一個航空公司的價格表與航線。而且每個城市出發都能到所有的城市,2個城市
2018.10.05 NOIP模擬 相遇(dfs序+lca)
描述 豪哥生活在一個n個點的樹形城市裡面,每一天都要走來走去。雖然走的是比較的多,但是豪哥在這個城市裡面的朋友並不是很多。 當某一天,猴哥給他展現了一下大佬風範之後,豪哥決定要獲得一些交往機會來提升交往
2018.10.17 NOIP模擬 管道(狀壓dp)
傳送門 狀壓dp好題。 怎麼今天道道題都有點東西啊 對於今天題目神仙出題人先膜為上策:%%%%DzYoAk_UoI%%%% 設f[i][j]f[i][j]f[i][j]表示選取點的狀態集合為iii,當
2018.10.20 NOIP模擬 麵包(數學期望)
傳送門 把方差的式子拆開。 方差=平方的期望-期望的平方。 顯然只用維護點對的個數和總方案數就行了。 利用分步的思想來統計。 要統計覆蓋一個矩形(x1,y1,x2,y2)(x1,y1,x2,y2)(x1
2018.10.16 NOIP模擬 長者(主席樹+hash)
傳送門 考試的時候開始sb的以為需要可持久化trietrietrie樹,發現建樹時空都是O(n2)O(n^2)O(n2)的。 然後發現由於每次只從原來的字串改一個字元。 因此直接主席樹維護區間hashh
百度之星程式設計大賽資格賽 1006三原色圖(最小生成樹)
度度熊有一張 nn 個點 mm 條邊的無向圖,所有點按照 1,2,\cdots,n1,2,⋯,n 標號,每條邊有一個正整數權值以及一種色光三原色紅、綠、藍之一的顏色。 現在度度熊想選出恰好 kk 條邊,滿足只用這 kk 條邊之中的紅色邊和綠色邊就能使 nn 個點之間兩兩連通
第七章 圖(最小生成樹之prime演算法和 kruskal演算法)
最小生成樹 所謂最小生成樹,就是在一個具有N個頂點的帶權連通圖G中,如果存在某個子圖G’,其包含了圖G中的所有頂點和一部分邊,且不形成迴路,並且子圖G’的各邊權值之和最小,則稱G’為圖G的最小生成樹。 由定義我們可得知最小生成樹的
POJ-2421-Constructing Roads(最小生成樹 普利姆)
connected number this brush first cst 數字 main memory Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 26694 Accepted:
hdu1233 繼續暢通工程 (最小生成樹——並查集)
ali std hint 政府 inpu truct class () con 還是暢通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tot
還是暢通工程(最小生成樹入門基礎題)
某省調查鄉村交通狀況,得到的統計表中列出了任意兩村莊間的距離。省政府“暢通工程”的目標是使全省任何兩個村莊間都可以實現公路交通(但不一定有直接的公路相連,只要能間接通過公路可達即可),並要求鋪設的公路總長度為最小。請計算最小的公路總長度。 Input測試輸入包含若干測試用例
Jungle Roads HDU - 1301(最小生成樹-並查集)
#include <stdio.h> #include <algorithm> using namespace std; struct Node { int a, b; int w
Jungle Roads(最小生成樹+並查集)
The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid money was spent on extra roads between villages some years ago.
POJ 1258 Agri-Net(最小生成樹 Prim 模版題)
大意:新鎮長競選宣言就是將網路帶到每一個農場,給出農場個數,兩兩之間建光纜的耗費,求所有都聯通的最小耗費。 思路:最小生成樹,因為邊比較稠密,用Prim做。 PS;對於比較稠密的圖,用Prim,對於比較稀疏的圖,用 Kruskal。Kruskal是找邊的過程,
The Unique MST 1679(最小生成樹的不唯一性)
The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24076 Accepted: 8551 Description Given a connected undirect
WUST 1944 最短網路Agri-Net(最小生成樹之prim演算法)
1944: 最短網路Agri-Net Time Limit: 1 Sec Memory Limit: 128 MB 64bit IO Format: %lldSubmitted: 22 Accepted: 9 [Submit][Status][Web Boar
2018.10.30 NOIP模擬 有環無向圖(dijkstra+巧妙建圖)
傳送門 建圖巧妙啊。 對於每個點的出邊,我們將它們排序之後依次連邊。 這樣可以把 O (