trang chủ / đề bài / icpc21_mt_m

Câu lạc bộ sinh viên

Đề bài

Mô tả

Trường đại học của Mai có nhiều câu lạc bộ sinh viên và mỗi câu lạc bộ có một sức mạnh. Sức mạnh của một câu lạc bộ được tính bằng giai thừa của số thành viên trong câu lạc bộ đó. Tổng sức mạnh của tất cả các câu lạc bộ là bao nhiêu?

Bài toán sẽ dễ nếu Mai biết mỗi câu lạc bộ có bao nhiêu thành viên, nhưng bạn ấy không có thông tin này. Điều duy nhất Mai có thể làm là phỏng vấn sinh viên, và mỗi sinh viên được phỏng vấn sẽ cho biết một sinh viên khác cùng câu lạc bộ với mình.

Giả sử Mai đã thu thập đủ thông tin về các sinh viên, mỗi sinh viên chỉ tham gia đúng một câu lạc bộ, và một câu lạc bộ hợp lệ phải có nhiều hơn 2 thành viên (tức là ít nhất 3 thành viên). Hãy giúp Mai tính tổng sức mạnh của tất cả các câu lạc bộ hợp lệ trong trường.

Các sinh viên được đánh số từ 0 đến N−1. Hai sinh viên cùng câu lạc bộ khi và chỉ khi có thể đi từ người này tới người kia qua một chuỗi các cặp thông tin đã thu thập.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên N và M (1≤N,M≤105), trong đó N là số sinh viên và M là số sinh viên đã được phỏng vấn.
  • M dòng tiếp theo, mỗi dòng chứa hai số nguyên: sinh viên được phỏng vấn và một bạn cùng câu lạc bộ mà sinh viên đó kể tên.

Dữ liệu ra

In ra một số nguyên là tổng sức mạnh của các câu lạc bộ hợp lệ, lấy phần dư khi chia cho 109+7.

Ràng buộc

  • 1≤N,M≤105.
  • Mỗi cặp gồm hai số nguyên khác nhau thuộc đoạn [0,N−1]; các cặp có thể lặp lại.

Ví dụ

Input Output Giải thích
9 5
1 2
2 3
0 4
4 5
8 7
12 Chỉ có 2 câu lạc bộ hợp lệ: câu lạc bộ {1,2,3} có sức mạnh 3!=6 và câu lạc bộ {0,4,5} có sức mạnh 3!=6. Câu lạc bộ {7,8} chỉ có 2 thành viên và sinh viên 6 ở một mình nên không hợp lệ. Tổng là 12.
5 4
0 1
1 2
2 3
3 4
120 Cả 5 sinh viên cùng một câu lạc bộ, sức mạnh 5!=120.

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.402 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.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0