trang chủ / đề bài / dhbb21_11_kiosks

Trung tâm mua sắm

Đề bài

Mô tả

Một trung tâm mua sắm có n kiốt (kiosk) đánh số từ 1 tới n, kiốt thứ i bán mặt hàng ci. Siêu thị có n−1 con đường hai chiều đánh số từ 1 tới n−1, con đường thứ i nối giữa kiốt ui và kiốt vi. Hệ thống các con đường đi đảm bảo sự đi lại giữa hai kiốt bất kỳ.

Trong thời kỳ dịch bệnh, người ta muốn ngưng hoạt động một số kiốt để dễ dàng kiểm soát các hoạt động mua bán cũng như giao tiếp với khách hàng. Khi một kiốt bị ngừng hoạt động, tất cả các con đường nối tới kiốt đó đều bị chặn để đảm bảo an ninh. Ngoài ra vì không muốn ảnh hưởng nhiều tới khách hàng, siêu thị muốn lập phương án sao cho các kiốt vẫn còn hoạt động phải thỏa mãn hai điều kiện sau:

  • Các kiốt còn hoạt động phải liên thông với nhau: tức là giữa hai kiốt bất kỳ vẫn được mở cửa phải tồn tại đường đi (qua các con đường không bị chặn).
  • Tất cả các mặt hàng mang số hiệu từ 1 tới k (là những mặt hàng thiết yếu) đều phải có bán ở ít nhất một kiốt còn hoạt động.

Hai phương án được gọi là khác nhau nếu có một kiốt bị ngưng hoạt động trong một phương án nhưng được phép hoạt động trong phương án còn lại.

Yêu cầu: Hãy cho biết có bao nhiêu phương án khác nhau thỏa mãn điều kiện nêu trên.

Dữ liệu vào

  • Dòng 1 chứa hai số nguyên dương n,k (n≤104, k≤10).
  • Dòng 2 chứa n số nguyên dương c1,c2,…,cn (∀i:ci≤n).
  • n−1 dòng tiếp theo, dòng thứ i chứa hai số nguyên dương ui,vi.

Các số trên cùng một dòng của input được ghi cách nhau bởi dấu cách.

Dữ liệu ra

In ra một số nguyên duy nhất là số dư trong phép chia số phương án thỏa mãn điều kiện đề bài cho 1000000007 (109+7).

Ràng buộc

  • 1≤n≤104, 1≤k≤10.
  • 1≤ci≤n với mọi i.
  • 1≤ui,vi≤n; các con đường tạo thành một hệ thống liên thông giữa n kiốt.

Subtasks

  • Subtask 1 (30% số điểm): k=1.
  • Subtask 2 (30% số điểm): mỗi kiốt có không quá 2 con đường nối tới nó.
  • Subtask 3 (40% số điểm): không có ràng buộc bổ sung ngoài các ràng buộc đã nêu trong đề bài.

Ví dụ

Input Output Giải thích
4 3
1 2 4 3
1 2
2 3
3 4
1 Các kiốt nối thành đường 1−2−3−4 và bán lần lượt các mặt hàng 1,2,4,3. Không thể đóng cửa kiốt nào cả: phương án duy nhất là cả 4 kiốt cùng hoạt động.
5 2
1 2 2 2 3
1 2
1 3
1 4
2 5
11 Các phương án có thể (các số trong ngoặc là những kiốt được hoạt động): {1, 2}; {1, 3}; {1, 4}; {1, 2, 3}; {1, 2, 4}; {1, 3, 4}; {1, 2, 3, 4}; {1, 2, 5}; {1, 2, 3, 5}; {1, 2, 4, 5}; {1, 2, 3, 4, 5}.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0