洛谷 P2839 暢通工程

2022-04-05 03:57:09 字數 886 閱讀 3061

某省調查城鎮交通狀況,得到現有城鎮道路統計表,表中列出了每條道路直接連通的城鎮。省**「暢通工程」的目標是使全省任何兩個城鎮間都可以實現交通(但不一定有直接的道路相連,只要互相間接通過道路可達即可)。問最少還需要建設多少條道路?

輸入格式:

第1行給出兩個正整數,分別是城鎮數目n ( < 1000 )和道路數目m

隨後的m行對應m條道路,每行給出一對正整數,分別是該條道路直接連通的兩個城鎮的編號

輸出格式:

至少還需建立多少條路

輸入樣例#1: 複製

3 3

1 21 3

2 3

輸出樣例#1: 複製

0

輸入樣例#2: 複製

3 3

1 21 2

2 1

輸出樣例#2: 複製

1

對於30%的資料,1<=n<=10

對於70%的資料,1<=n<=200

對於100%的資料,1<=n<=1000,1<=m<=1000

思路:並查集。

#include#include

#include

#include

using

namespace

std;

intn,m,ans;

int fa[1010],vis[1010

];int find(int

x)int

main()

for(int i=1;i<=n;i++)

if(!vis[find(i)]) vis[find(i)]=1,ans++;

cout

<1

;}

P2839 國家集訓隊 middle

提一下靜態區間第k小的nlog2n的做法 1.建關於排名的主席樹 按排名順序建樹 2.二分答案。這樣做靜態區間第k小的雖然有些zz,但它的意義在於將線段樹 維護的物件改變了。1 include2 using namespace std 3int n,m,cnt 4int a 5 midd 5int ...

P2839 國家集訓隊 middle 解題報告

給乙個長度為 n nn 的序列。多次詢問,每次給出四個引數 a,b c,d a,b,c,d a,b,c,d 要求找乙個子區間 l,r l,r l,r 滿足 a l b,c r d a le l le b,c le r le d a l b,c r d,使得子區間的中位數最大。輸出中位數的最大值。首先...

解題報告 P2839 國家集訓隊 middle

絕世好題 首先對於求區間 l,r 的中位數,有乙個套路可以套 二分乙個值 d 每次將區間內 的點設為 1 將 ge d 的點設為 1 當區間和 ge 0 時 d 值過大或剛好,若 0 則 d 值過小。我們繼續觀察題目。我們發現,每次詢問的區間不固定,但是 b 1,c 1 這個區間是必須選擇的,所以我...