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

Hai hội chợ

Đề bài

Mô tả

Cho một đồ thị vô hướng liên thông gồm n đỉnh và m cạnh. Hai đỉnh đặc biệt ab (ab) được đánh dấu là vị trí của hai hội chợ.

Hãy đếm số cặp đỉnh (x,y) thỏa mãn:

  • xa, xb, ya, yb, xy;
  • Mọi đường đi từ x tới y trên đồ thị đều đi qua cả hai đỉnh ab (theo thứ tự bất kỳ).

Mỗi cặp không phân biệt thứ tự — (x,y)(y,x) chỉ được tính một lần.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t — số bộ dữ liệu.
  • Mỗi bộ dữ liệu bắt đầu bằng dòng chứa bốn số nguyên n, m, a, b.
  • Tiếp theo là m dòng, mỗi dòng chứa hai số nguyên u,v (uv) mô tả một cạnh vô hướng giữa hai đỉnh uv.

Các cạnh là hai chiều; có thể tồn tại nhiều cạnh giữa cùng một cặp đỉnh. Đảm bảo đồ thị liên thông.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra trên một dòng số cặp (x,y) thỏa mãn yêu cầu.

Ràng buộc

  • 1t4·104
  • 4n2·105
  • n1m5·105
  • 1a,bn, ab
  • Tổng n trên tất cả bộ dữ liệu không vượt quá 2·105.
  • Tổng m trên tất cả bộ dữ liệu không vượt quá 5·105.

Ví dụ

Input Output Giải thích
3
7 7 3 5
1 2
2 3
3 4
4 5
5 6
6 7
7 5
4 5 2 3
1 2
2 3
3 4
4 1
4 2
4 3 2 1
1 2
2 3
4 1
4
0
1
Bộ 1: a=3, b=5. Các cặp hợp lệ là (1,6), (1,7), (2,6), (2,7)x{1,2} chỉ tới được phía {6,7} qua đường 35. Bộ 2: đồ thị quá dày, không tồn tại cặp nào bắt buộc đi qua cả hai. Bộ 3: chỉ có cặp (3,4) thỏa mãn.

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