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

Tập hợp hợp lệ

Đề bài

Mô tả

Cho một cây vô hướng liên thông gồm n đỉnh, mỗi đỉnh i mang giá trị nguyên dương ai. Cho thêm số nguyên không âm d.

Một tập hợp đỉnh S của cây được gọi là hợp lệ nếu thoả mãn đồng thời:

  1. S khác rỗng.
  2. S liên thông trên cây — với hai đỉnh u,v bất kỳ thuộc S, mọi đỉnh nằm trên đường đi đơn giữa uv trong cây đều phải thuộc S.
  3. maxvSavminvSavd.

Hãy đếm số tập hợp đỉnh hợp lệ. Vì kết quả có thể rất lớn, hãy in ra phần dư khi chia cho 109+7.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên dn.
  • Dòng thứ hai chứa n số nguyên dương a1,a2,,an.
  • n1 dòng tiếp theo, mỗi dòng chứa hai số nguyên u,v mô tả một cạnh giữa hai đỉnh uv của cây.

Dữ liệu ra

In ra một số nguyên duy nhất — số tập hợp đỉnh hợp lệ, lấy phần dư khi chia cho 109+7.

Ràng buộc

  • 0d2000
  • 1n2000
  • 1ai2000
  • 1u,vn
  • Dữ liệu đảm bảo các cạnh tạo thành một cây.

Ví dụ

Input Output Giải thích
1 4
2 1 3 2
1 2
1 3
3 4
8 Có đúng 8 tập hợp hợp lệ: {1},{2},{3},{4},{1,2},{1,3},{3,4},{1,3,4}. Tập {1,2,3,4} liên thông nhưng có maxmin=31=2>1 nên không hợp lệ. Tập {1,4} thoả điều kiện về giá trị nhưng không liên thông vì đỉnh 3 nằm giữa và không thuộc tập.
0 3
1 2 3
1 2
2 3
3 d=0 buộc mọi đỉnh trong tập phải có giá trị bằng nhau. Vì các giá trị đôi một khác nhau, chỉ có 3 tập hợp một phần tử là hợp lệ.
4 8
7 8 7 5 4 6 4 10
1 6
1 2
5 8
1 3
3 5
6 7
3 4
41 41 tập con liên thông có hiệu maxmin4.

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