CSES 1666 - Building Roads
1.0s 512MByteland 有 \(n\) 座城市,城市之間有 \(m\) 條道路。目標是興建新的道路,使得任兩座城市之間都有路可以互相往來。
你的任務是算出最少需要幾條新道路,並且決定要興建哪些道路。
輸入格式
第一行有兩個整數 \(n\) 與 \(m\):城市數與道路數。城市編號為 \(1,2,\dots,n\)。
接下來有 \(m\) 行描述這些道路。每行有兩個整數 \(a\) 與 \(b\):這兩座城市之間有一條道路。
一條道路一定連接兩座不同的城市,而且任兩座城市之間最多只有一條道路。
輸出格式
先輸出一個整數 \(k\):需要新建的道路數量。
接著輸出 \(k\) 行,描述這些新道路。任何合法的答案都可以。
範例輸入 1
4 2
1 2
3 4
範例輸出 1
1
2 3
限制
- \(1 \le n \le 10^5\)
- \(1 \le m \le 2 \cdot 10^5\)
- \(1 \le a,b \le n\)
題目來源
題目來自 CSES Problem Set(Antti Laaksonen),授權 CC BY-NC-SA 4.0;本頁為翻譯,以相同授權分享。
登入後即可撰寫程式並提交評測。
登入