trang chủ / đề bài / thhv19_ctn_11_b

Đường đẹp

Đề bài

Mô tả

Có N thành phố trong một đất nước được kết nối bằng N−1 con đường hai chiều, sao cho từ một thành phố bất kỳ có thể đi đến mọi thành phố khác (hệ thống đường tạo thành một cây). Một số thành phố là thành phố loại 1, một số là loại 2 và một số chưa được xếp loại. Đất nước được đảm bảo có ít nhất một thành phố loại 1 và ít nhất một thành phố loại 2.

Bạn chọn một con đường và loại bỏ nó ra khỏi hệ thống đường đi, khiến đất nước bị chia thành hai phần. Đó là một con đường đẹp nếu sau khi loại bỏ, không có phần nào chứa đồng thời cả thành phố loại 1 và thành phố loại 2. Một phần chỉ gồm các thành phố chưa được xếp loại vẫn được chấp nhận.

Yêu cầu: Hãy tính số lượng những con đường đẹp.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên N (3≤N≤3·105), số thành phố. Các thành phố được đánh số từ 1 đến N.
  • Dòng thứ hai chứa N số nguyên a1,a2,…,aN (0≤ai≤2) là loại của các thành phố, trong đó:
    • ai=1 nghĩa là thành phố i là thành phố loại 1;
    • ai=2 nghĩa là thành phố i là thành phố loại 2;
    • ai=0 nghĩa là thành phố i chưa được xếp loại.
  • Dòng thứ i trong N−1 dòng tiếp theo chứa hai số nguyên vi,ui (1≤vi,ui≤N) mô tả con đường nối hai thành phố vi và ui. Các con đường tạo thành một cây.

Dữ liệu ra

In ra một số nguyên duy nhất là số lượng con đường đẹp.

Ràng buộc

  • 3≤N≤3·105.
  • 0≤ai≤2; có ít nhất một ai=1 và ít nhất một ai=2.
  • 1≤vi,ui≤N; N−1 con đường tạo thành một cây.

Ví dụ

Input Output Giải thích
5
2 0 0 1 2
1 2
2 3
2 4
2 5
1 Chỉ có con đường (2,4) là đẹp: hai phần là {4} (chỉ có loại 1) và {1,2,3,5} (chỉ có loại 2 và chưa xếp loại).
6
1 0 1 0 0 2
1 2
2 3
3 4
4 5
5 6
3 Các con đường (3,4), (4,5), (5,6) là đẹp: phần chứa thành phố 1 và 3 không chứa thành phố 6. Con đường (1,2) và (2,3) không đẹp vì phần còn lại chứa cả thành phố 3 (loại 1) và thành phố 6 (loại 2).
4
1 2 1 0
1 2
2 3
2 4
0 Bỏ con đường (2,4) thì phần {4} chỉ gồm thành phố chưa xếp loại, nhưng phần {1,2,3} chứa cả hai loại nên con đường không đẹp. Hai con đường còn lại cũng vậy.

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