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

Robot dọn dẹp

Đề bài

Mô tả

Thị trấn ICPC có N ngã tư được đánh số từ 1 đến N, nối với nhau bởi N1 con đường sao cho từ một ngã tư bất kỳ luôn đi được tới mọi ngã tư khác.

Chính quyền muốn triển khai một đội robot dọn dẹp. Mỗi robot k được giao một nhiệm vụ là tập ngã tư Tk mà nó phải dọn, với |Tk|1. Kế hoạch triển khai phải thỏa mãn:

  • Mỗi tập Tk tạo thành một đường đi: tồn tại dãy v1,v2,,v|Tk| gồm đúng các phần tử đôi một khác nhau của Tk, trong đó hai ngã tư liên tiếp được nối trực tiếp bởi một con đường.
  • Hợp của tất cả các Tk là toàn bộ tập ngã tư của thị trấn.
  • Hai robot khác nhau không cùng dọn một ngã tư, tức TiTj= với mọi ij.
  • Kế hoạch không rút gọn được: không tồn tại hai robot ij sao cho TiTj cũng tạo thành một đường đi.

Chính quyền không quan tâm số robot được dùng có ít nhất hay không, miễn là kế hoạch thỏa mãn cả bốn điều kiện trên.

Hãy đếm số kế hoạch triển khai hợp lệ. Hai kế hoạch được coi là khác nhau nếu chúng khác nhau ở tập hợp các nhiệm vụ (thứ tự các robot không quan trọng). Vì kết quả có thể rất lớn, hãy in ra phần dư của nó khi chia cho 109+7.

Dữ liệu vào

  • Dòng đầu chứa số nguyên N là số ngã tư.
  • N1 dòng tiếp theo, mỗi dòng chứa hai số nguyên uivi mô tả con đường nối ngã tư ui và ngã tư vi.

Dữ liệu ra

In ra một số nguyên duy nhất là số kế hoạch triển khai hợp lệ, lấy phần dư khi chia cho 109+7.

Ràng buộc

  • 1N100000
  • 1ui<viN
  • Dữ liệu đảm bảo các con đường tạo thành một cây (từ mỗi ngã tư đều đi được tới mọi ngã tư khác).

Ví dụ

Input Output Giải thích
6
1 3
2 3
3 4
4 5
4 6
5 Năm kế hoạch: {1,2,3},{4,5,6}; {1,3,4,6},{2},{5}; {1,3,4,5},{2},{6}; {1},{2,3,4,6},{5}; {1},{2,3,4,5},{6}. Kế hoạch {1,3},{2},{4,5,6} không hợp lệ vì {1,3}{2} tạo thành đường đi 132. Kế hoạch {1,2,3,4},{5},{6} cũng không hợp lệ vì {1,2,3,4} không phải một đường đi.
5
1 2
2 3
2 4
4 5
3 Ba kế hoạch: {1,2,3},{4,5}; {1,2,4,5},{3}; {3,2,4,5},{1}. Nếu chỉ dùng một robot cho ngã tư 5 thì {5} luôn ghép được với đường đi chứa 4 ở đầu mút, nên không có kế hoạch nào khác.

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