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

Hai đường đi không giao nhau

Đề bài

Mô tả

Cho một cây gồm N đỉnh, các đỉnh được đánh số từ 1 đến N.

Hãy đếm số bộ bốn số nguyên (a,b,c,d) thỏa mãn đồng thời:

  • 1a<bN;
  • 1c<dN;
  • không tồn tại đỉnh nào nằm trên cả đường đi ngắn nhất từ a đến b lẫn đường đi ngắn nhất từ c đến d.

Nói cách khác, cần đếm số cặp (có thứ tự) gồm hai đường đi trên cây sao cho chúng không có đỉnh chung.

Dữ liệu vào

  • Dòng đầu chứa số nguyên N.
  • Mỗi dòng trong N1 dòng tiếp theo chứa hai số nguyên ui,vi (1ui,viN; uivi) mô tả một cạnh của cây.

Dữ liệu đảm bảo đồ thị đã cho là một cây.

Dữ liệu ra

In ra một số nguyên duy nhất là số bộ (a,b,c,d) thỏa mãn.

Ràng buộc

  • 1N80000

Ví dụ

Input Output Giải thích
4
1 2
2 3
3 4
2 Cây là đường 1-2-3-4. Hai bộ hợp lệ là (a,b,c,d)=(1,2,3,4)(3,4,1,2): đường đi 12 và đường đi 34 không có đỉnh chung. Lưu ý hai bộ này được đếm riêng vì thứ tự hai đường đi khác nhau.
5
1 2
2 3
3 4
2 5
6 Các cặp đường đi không giao nhau: (1,5) với (3,4); (1,2) với (3,4); (2,5) với (3,4), mỗi cặp tính theo cả hai thứ tự, tổng cộng 6 bộ.
2
1 2
0 Chỉ có một đường đi duy nhất 12, không tạo được cặp nào không giao nhau.

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