12.15 省選訓練總結
阿新 • • 發佈:2019-02-18
目錄
完成情況 | 題目 | 出處 |
---|---|---|
GGS-DDU | HDU 4966 | |
Journey | CDOJ 92 | |
Network | POJ 1144 | |
朋友圈 | BZOJ 2744 [HEOI 2012] | |
放箱子 | CDOJ 1432 | |
Harry Potter and the Forbidden Forest | HDU 3987 | |
度度熊的交易計劃 | HDU 6118 |
最小樹形圖
定義:
在一個有向圖中,欽定一個根節點,然後選取一些邊,然後使得根節點可以達到任意一個節點,就是廣義的最小生成樹。演算法:朱劉演算法
首先判斷圖的連通性,如果不連通,就肯定沒解。
如果有,為每一個點選取一個權值最小的入邊,暫時當做選擇它。
選完之後可能有環,我們縮一下環,然後對於一個環,每當有一個環上連一條邊的時候,將環上的一個點拆了,然後把邊連上去,這樣子,可以保證必定變成一個樹。
例題
- Hdu 4966
先把課的等級離散一下,然後每一個點向等級低的點來連一條0的邊,這樣子表示如果學會這個等級,那麼小的等級也會學會,然後把a向b按照題意連一條邊,這樣搞樹形圖就可以啦。
TARJAN
fn
藉此演算法,我們可以求
LCA
方法有很多,
例題
- Cdoj 92
這種迂腐的題,當然可以直接在仙人掌上跑最短路,但是不用這麼麻煩,因為我們可以這樣:新的最短路要麼是原路,要麼是走到新的邊上的路徑,我們可以直接算出這幾個點的距離,比較一下就好了。
無向圖求割頂
原理
(見之前)使用
例題
Poj 1144
裸題……
次長路
定義:
大於最短路的最小路徑。
方法有兩種:
1.
2.跑完一次最短路之後,列舉一條邊的兩個端點就可以啦。