Professional Documents
Culture Documents
Xóa cạnh - Xem lại lần làm thử
Xóa cạnh - Xem lại lần làm thử
Câu Hỏi 1 Đúng
Cho một đồ thị liên thông G có n đỉnh đánh số từ 1 đến n , và n cạnh hai chiều nối các đỉnh. Bạn hãy viết chương trình xóa đi một cạnh của G để G trở
thành đồ thị liên thông nhưng không có chu trình.
Đầu vào
Dữ liệu vào từ bàn phím gồm n + 1 dòng. Dòng đầu tiên chứa số nguyên n .
(n ≤ 1000) n dòng tiếp theo, mỗi dòng chứa hai số nguyên biểu diễn một
cạnh của đồ thị.
Đầu ra
In ra màn hình cạnh cần xóa. Nếu có thể xóa nhiều cạnh khác nhau, in ra cạnh xuất hiện cuối cùng trong danh sách đầu vào.
For example:
Input Result
3 1 3
1 2
2 3
1 3
Answer:
1 #include <bits/stdc++.h>
2 using namespace std;
3 int n;
4 int parent[1001];
5
6 ▼ void make_set(){
7 ▼ for(int i=1;i<=n;i++){
8 parent[i]=i;
9 }
10 }
11
12 ▼ int find_parent(int v){
13 ▼ if(v==parent[v]){
14 return v;
15 }
16 return parent[v]=find_parent(parent[v]);
17 }
18
19 ▼ bool marked(int a,int b){
20 a=find_parent(a);
21 b=find_parent(b);
22 return a==b;
23 }
24
25 ▼ void Union(int a,int b){
26 a=find_parent(a);
27 b=find_parent(b);
28 parent[a] b;
Đúng