trang chủ / bài tập / treequery

Truy vấn trên cây

Đề bài

Mô tả

Cho một cây có gốc gồm n đỉnh được đánh số từ 1 đến n, gốc là đỉnh 1.

Bạn nhận được m truy vấn. Truy vấn thứ i cho một tập gồm ki đỉnh đôi một phân biệt vi,1,vi,2,,vi,ki.

Với mỗi truy vấn, hãy xác định xem có tồn tại một đỉnh u sao cho mọi đỉnh trong tập đã cho hoặc thuộc đường đi từ gốc 1 đến u, hoặc có khoảng cách bằng 1 tới một đỉnh nào đó trên đường đi này (khoảng cách giữa hai đỉnh là số cạnh trên đường đi giữa chúng).

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm — số đỉnh của cây và số truy vấn.
  • n1 dòng tiếp theo, mỗi dòng chứa hai số nguyên uivi (1ui,vin, uivi) mô tả một cạnh của cây.
  • m dòng tiếp theo, mỗi dòng bắt đầu bằng số nguyên ki rồi đến ki số nguyên vi,1,vi,2,,vi,ki (1vi,jn).

Đảm bảo các cạnh tạo thành một cây, các đỉnh trong cùng một truy vấn đôi một phân biệt, và i=1mki2·105.

Dữ liệu ra

Với mỗi truy vấn, in ra "YES" nếu tồn tại đỉnh u thỏa mãn yêu cầu, ngược lại in ra "NO".

Ràng buộc

  • 2n2·105
  • 1m2·105
  • 1kin
  • ki2·105

Ví dụ

Input Output Giải thích
10 6
1 2
1 3
1 4
2 5
2 6
3 7
7 8
7 9
9 10
4 3 8 9 10
3 2 4 6
3 2 1 5
3 4 8 2
2 6 10
3 5 4 7
YES
YES
YES
YES
NO
NO
Truy vấn 1: chọn u=10, đường đi là 137910; các đỉnh 3,9,10 thuộc đường đi, đỉnh 8 có khoảng cách 1 tới 7. Truy vấn 2: chọn u=2, các đỉnh 4,6 đều có khoảng cách 1 tới đường đi 12. Truy vấn 5: không tồn tại u phù hợp cho tập {6,10}.
2 3
1 2
1 1
1 2
2 1 2
YES
YES
YES
Cây hai đỉnh; mọi truy vấn đều thỏa với u=2 (hoặc u=1).

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0