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

Số đường đi đơn

Đề bài

Mô tả

Cho một đồ thị vô hướng gồm n đỉnh và n cạnh. Đồ thị liên thông (từ một đỉnh bất kì có thể đi tới mọi đỉnh khác), không có khuyên và không có cạnh bội.

Hãy đếm số đường đi đơn có độ dài ít nhất 1 trong đồ thị. Một đường đi là dãy đỉnh v1,v2,,vk sao cho mỗi cặp đỉnh liên tiếp được nối bởi một cạnh. Độ dài đường đi là số cạnh trong đó. Đường đi đơn là đường đi mà tất cả các đỉnh đôi một khác nhau. Hai đường đi chỉ khác nhau ở thứ tự duyệt (ví dụ [1,2,3][3,2,1]) được coi là cùng một đường đi.

Bài toán có t bộ dữ liệu độc lập.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t (1t2·104) — số bộ dữ liệu.
  • Mỗi bộ dữ liệu bắt đầu bằng dòng chứa số nguyên n (3n2·105) — số đỉnh đồng thời cũng là số cạnh.
  • n dòng tiếp theo, dòng thứ i chứa hai số nguyên ui,vi (1ui,vin, uivi) mô tả cạnh thứ i.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra một số nguyên — số đường đi đơn có độ dài ít nhất 1.

Ràng buộc

  • 1t2·104
  • 3n2·105
  • Tổng n trên tất cả các bộ dữ liệu không vượt quá 2·105.
  • Đồ thị liên thông, không có khuyên, không có cạnh bội.

Ví dụ

Input Output Giải thích
3
3
1 2
2 3
1 3
4
1 2
2 3
3 4
4 2
5
1 2
2 3
1 3
2 5
4 3
6
11
18
Bộ 1: tam giác 123, có 3 đường đi độ dài 13 đường đi độ dài 2. Bộ 2: chu trình 234 kèm đỉnh 1 treo vào 2; liệt kê đủ thấy 11 đường đi (ví dụ [1,2,3,4][1,2,4,3] được tính là hai đường khác nhau).
1
4
1 2
2 3
3 4
4 1
12 Chu trình 4 đỉnh. Có 4 đường độ dài 1, 4 đường độ dài 24 đường độ dài 3 (cùng một cặp đỉnh đối diện có hai đường đi qua hai phía của chu trình).

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