Tên đăng nhập Điểm ▾ Bài tập Giới thiệu
9501 4664 42
9502 4663 29
9503 4663 11
9504 4662 52
9505 4662 13
9506 4660 8
9507 4659 18
9508
practice23_07
Đào Quang Linh
4658 4
9509
kien2005 1187
Nguyễn Trung Kiên
4657 4
9510 4657 8
9511 4654 6
9512 4654 4

include<bits/stdc++.h>

using namespace std;

define endl "\n"

define pb push_back

define ll long long

const int maxn=1e6+1;

vector<int>adj[maxn],queries[maxn];
int n,q,par[maxn],rnk[maxn],ancestor[maxn];
bool visited[maxn];
map<pair\<int,int>,int>mp;
vector<pair\<int,int>>ans;

int find_set(int u){
while(par[u]!=u)u=par[u];
return u;
}

void union_set(int x,int y){
int xroot=find_set(x);
int yroot=find_set(y);
if(xroot==yroot)return;
if(rnk[xroot]<rnk[yroot])par[xroot]=yroot; else if(rnk[xroot]>rnk[yroot])par[yroot] = xroot;
else{
par[xroot]=yroot;
rnk[yroot]++;
}
}

void dfs(int w){
visited[w]=true;
ancestor[w]=w;
for(int u:adj[w]){
if(!visited[u]){
dfs(u);
union_set(w,u);
ancestor[find_set(u)] = w;
}
}
for(int u:queries[w]){
if(visited[u]){
mp[{min(w,u),max(u,w)}]=ancestor[find_set(u)];
}
}
}

int main() {
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n>>q;
for(int i = 1; i < n; i++) {
int u, v;
cin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u);
}
for(int i = 1; i <= n; i++)
par[i] = i;
for (int i=1;i<=q;i++) {
int u, v;
cin >> u >> v;if (u>v)swap(u,v);ans.pb({u,v});
queries[u].push_back(v);
queries[v].push_back(u);
}
dfs(1);
for (auto u:ans)cout<<mp[u]<<endl;
}

9513 4652 80
9514 4652 13
9515 4652 35
9516 4651 21
9517 4650 41
9518 4650 31
9519
ko_coten
Nguoi Thuc Dem
4650 49
9520 4649 51
9521 4649 9
9522
thaiduongthuy
Thái Dương Thủy
4648 28
9523 4648 4
9524 4648 50
9525
P1A2_02_NguyenGiaLong
Nguyễn Gia Long
4647 85

9526 4646 25
9527
PY1BNguyenQuocBao
Nguyễn Quốc Bảo
4646 62
9528
LTTrungCHL 1742
Lưu Tiến Trung
4646 6
9529
nntan2808
Tấn lớp 9
4645 7
9530
phamthikimchi 961
Phạm Thị Kim Chi
4644 43
9531 4644 38
9532
truongvinhnguyenngoc
Trường Vinh
4643 54
9533
__lvhoa__ 1503
Lê Văn Hòa
4643 13
9534
PTfhung 1298
Nguyễn Phú Hưng
4642 12
9535 4641 11
9536 4640 15
9537 4639 12
9538 4639 10
9539 4638 54
9540 4637 11
9541
NHU10 1073
Võ Hoàng Đức
4635 8
9542
duyanh
Bùi Duy Anh
4634 17
9543
PY1DNguyenKhoiNguyen
Nguyễn Khôi Nguyên
4634 60
9544 4633 5
9545 4633 7
9546 4633 49

Bo nè hihi

9547 4633 14
9548 4632 64
9549 4630 47
9550 4630 42
9551 4630 4
9552 4629 61
9553
nsnsjshahhsjs 1371
nguyễn thị hoàng diệu
4628 49

good luck with the exam

9554 4628 46
9554 4628 46
9554 4628 46
9554 4628 46
9554 4628 46
9554 4628 46
9554 4628 46
9554 4628 46
9554 4628 46
9563 4627 14
9564
tungtrung1411
Nguyễn Lâm Tùng
4624 25

Thành tích


Le Quy Don Top 1

IOI Medalist

APIO 2021 Medalist

APIO 2022 Medalist

9565
minhtriethansome
Phạm Minh Triết
4623 70
9566 4621 15
9567 4621 47
9568 4618 34
9569 4618 46
9570 4618 7
9571 4616 40

Tôi là 1 thằng phèn

9572 4616 11
9573 4615 64
9574 4615 50
9575 4615 8
9576
hungseaisme
Nguyễn Duy Hùng 11TT
4613 43

Nguyễn Duy Hùng 10TT

9577 4612 4
9578 4612 45
9579 4612 9
9580 4612 72
9581 4611 46
9581 4611 46
9581 4611 46
9584 4609 49
9585 4608 46
9586 4607 45
9587 4607 21
9588 4607 22
9589
LeTienPhuc
Lê Tiến Phúc Lớp 6
4606 47
9590 4606 4
9591 4606 44
9591 4606 44
9591 4606 44
9594 4605 61
9595 4604 39
9596
esciihere
Nguyen Xuan Hai
4603 44
9597 4603 75
9598 4603 42
9599 4602 92
9600
nguyenhoangquann54
troll troll việt nam :)))))))))
4602 60

sinh ra ở vạch đích