對題面進行一下分析,本題並不複雜,需要注意的是,要求是乙個乙個滿足的,也就是說最開始你要保證該圖聯通,然後連邊數最小。
emmmmm 這不就是生成樹嗎,再往下看,要實現最大的邊長最小化,這不就是求最小生成樹上最長邊嗎
接下來就沒什麼好說的了,直接上**
#includeusingnamespace
std;
const
int maxn = 310
;const
int maxn = 50010
;int
n, m, fa[maxn], res;
struct
st edge[maxn];
int find ( int
x )
inline
void add_edge ( int i, int u, int v, int
w )
inline
int comp ( const st & a, const st &b)
inline
void
kruscal ()
}}int
main ()
kruscal ();
printf (
"%d %d
", n-1
, res );
return0;
}
洛谷 P2330 SCOI2005 繁忙的都市
城市c是乙個非常繁忙的大都市,城市中的道路十分的擁擠,於是市長決定對其中的道路進行改造。城市c的道路是這樣分布的 城市中有n個交叉路口,有些交叉路口之間有道路相連,兩個交叉路口之間最多有一條道路相連線。這些道路是雙向的,且把所有的交叉路口直接或間接的連線起來了。每條道路都有乙個分值,分值越小表示這個...
洛谷P2330 SCOI2005 繁忙的都市
城市c是乙個非常繁忙的大都市,城市中的道路十分的擁擠,於是市長決定對其中的道路進行改造。城市c的道路是這樣分布的 城市中有n個交叉路口,有些交叉路口之間有道路相連,兩個交叉路口之間最多有一條道路相連線。這些道路是雙向的,且把所有的交叉路口直接或間接的連線起來了。每條道路都有乙個分值,分值越小表示這個...
洛谷 P2327 SCOI2005 掃雷
看起來我做的和其他題解不一樣 那就發一篇吧 首先本題情況看似無厘頭,但是仔細觀察,不難發現 我們可以假設第一種情況,接著可以推出第二種 然後有了兩個已知的後,第三個顯而易見 如果你要問我怎麼推出來的嗎,我在裡面說的的邏輯判斷已經很明白了 include include include include...