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

Hành trình kỳ lạ

Đề bài

Mô tả

Cho một đồ thị vô hướng gồm n đỉnh và m cạnh. Đồ thị có thể chứa khuyên (cạnh nối một đỉnh với chính nó), nhưng không có hai cạnh nào nối cùng một cặp đỉnh. Nói riêng, mỗi đỉnh có nhiều nhất một khuyên.

Một hành trình là một dãy các cạnh đi liên tiếp nhau, có thể bắt đầu và kết thúc tại đỉnh bất kỳ. Hành trình được gọi là tốt nếu nó đi qua m2 cạnh đúng hai lần và 2 cạnh còn lại đúng một lần. Như vậy mọi cạnh của đồ thị đều phải được đi qua.

Hai hành trình tốt được coi là khác nhau nếu tập hai cạnh mà chúng chỉ đi qua một lần là khác nhau.

Hãy đếm số hành trình tốt.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm: số đỉnh và số cạnh.
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên uv, mô tả một cạnh nối đỉnh u và đỉnh v.

Dữ liệu ra

Một số nguyên duy nhất là số hành trình tốt.

Ràng buộc

  • 1n,m106
  • 1u,vn
  • Không có cặp đỉnh nào được nối bởi hai cạnh khác nhau.

Ví dụ

Input Output Giải thích
5 4
1 2
1 3
1 4
1 5
6 Đồ thị hình sao tâm là đỉnh 1. Hai cạnh chỉ đi qua một lần bắt buộc phải có chung đỉnh 1, nên có (42)=6 cách chọn. Chẳng hạn với cặp {1-2,1-3} ta có hành trình 2141513.
2 2
1 1
1 2
1 Chỉ có một cách chọn hai cạnh, và hành trình 211 đi qua cả hai cạnh đúng một lần (ở đây m2=0 nên không cạnh nào bị đi hai lần).
5 3
1 2
2 3
4 5
0 Đồ thị không liên thông: cạnh 4-5 nằm tách rời khỏi hai cạnh còn lại, nên không tồn tại hành trình đi qua được mọi cạ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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0