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

Đường đi của những kẻ ngốc

Đề bài

Mô tả

Berland có n thành phố, được nối bởi n1 con đường hai chiều sao cho giữa mỗi cặp thành phố có duy nhất một đường đi đơn (tức là đồ thị tạo thành một cây). Các con đường được đánh số từ 1 tới n1 theo thứ tự xuất hiện trong dữ liệu vào.

k cặp người, cặp thứ i gồm hai người sống ở thành phố aibi. Người thứ 2i1 đi từ thành phố ai tới gặp người thứ 2i ở thành phố bi theo đường đi đơn duy nhất trong cây.

Với mỗi con đường, hãy đếm xem có bao nhiêu người đã đi qua nó. Một con đường được tính nếu nó nằm trên đường đi đơn của ít nhất một trong hai người trong một cặp; cặp (ai,bi) đóng góp giá trị 2 cho mỗi con đường nằm trên đường đi từ ai tới bi (mỗi người đi qua đúng một lần).

Lưu ý: nếu ai=bi thì không có con đường nào được sử dụng trong cặp đó.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số thành phố.
  • n1 dòng tiếp theo, mỗi dòng chứa hai số nguyên ui,vi (1ui,vin, uivi) mô tả con đường nối hai thành phố uivi.
  • Dòng tiếp theo chứa số nguyên k — số cặp người.
  • k dòng tiếp theo, mỗi dòng chứa hai số nguyên ai,bi (1ai,bin).

Dữ liệu ra

In ra n1 số nguyên cách nhau bởi khoảng trắng: số thứ i là số người đã đi qua con đường thứ i (theo thứ tự xuất hiện trong dữ liệu vào).

Ràng buộc

  • 2n105
  • 0k105

Ví dụ

Input Output Giải thích
5
1 2
1 3
2 4
2 5
2
1 4
3 5
2 1 1 1 Cặp 1 đi từ 1 tới 4 qua đường 1 (1-2) và 3 (2-4). Cặp 2 đi từ 3 tới 5 qua đường 2 (1-3), 1 (1-2), 4 (2-5). Mỗi người trong cặp đi một lần nên đường 1 được dùng bởi hai người (một từ mỗi cặp).
5
3 4
4 5
1 4
2 4
3
2 3
1 3
3 5
3 1 1 1 Đường 1 (3-4) nằm trên cả ba đường đi 23, 13, 35 nên có 3 người đi qua. Mỗi đường còn lại chỉ thuộc một đường đi nên đều bằng 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