某省調查城鎮交通狀況,得到現有城鎮道路統計表,表中列出了每條道路直接連通的城鎮。省**「暢通工程」的目標是使全省任何兩個城鎮間都可以實現交通(但不一定有直接的道路相連,只要互相間接通過道路可達即可)。問最少還需要建設多少條道路?
輸入格式:
第1行給出兩個正整數,分別是城鎮數目n ( < 1000 )和道路數目m
隨後的m行對應m條道路,每行給出一對正整數,分別是該條道路直接連通的兩個城鎮的編號
輸出格式:
至少還需建立多少條路
輸入樣例#1: 複製
3 31 21 3
2 3
輸出樣例#1: 複製
0
輸入樣例#2: 複製
3 31 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 這個區間是必須選擇的,所以我...