[PreVOI 24 - Bắc Giang] Bài 2: Chameleon
Xem dạng PDFTrong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài
Đất nước Sanguinesia là nơi sinh sống của hàng chục loài tắc kè hoa khác nhau. Nhân dịp sinh nhật, bạn Khoa quyết định tự thưởng cho mình một chuyến đi đến đất nước này để được tận mắt nhìn thấy những con tắc kè hoa sặc sỡ và dễ thương!
Đất nước Sanguinesia có ~N~ thành phố khác nhau, đánh số từ ~1~ đến ~N~. Có ~M~ con đường 2 chiều, mỗi con đường nối 2 thành phố khác nhau. Đối với 2 thành phố bất kì, có nhiều nhất một con đường nối giữa chúng. Các thành phố đều liên thông với nhau, có nghĩa là từ một thành phố bất kì, luôn tồn tại một tuyến đường để đến các thành phố còn lại.
Bạn Khoa sẽ bắt đầu chuyến đi của mình ở thành phố ~X~, và bạn ấy sẽ kết thúc chuyến đi của mình ở một thành phố ~Y~ có chỉ số lớn hơn ~X~. Có thể có nhiều cách để di chuyển từ thành phố ~X~ đến thành phố ~Y~. Vì vậy, trước khi lên đường, bạn ấy cần biết trước những con đường và thành phố nào là tất yếu cho chuyến đi của bạn.
Một con đường được gọi là tất yếu giữa thành phố ~X~ và thành phố ~Y~ khi mọi tuyến đường từ thành phố ~X~ đến thành phố ~Y~ đều bắt buộc phải đi qua con đường đó. Nói cách khác, nếu con đường đó bị bỏ đi, thì không còn đường đi nào từ thành phố ~X~ đến thành phố ~Y~ nữa. Bạn Khoa đặt ~F(X, Y)~ là số lượng con đường tất yếu giữa thành phố ~X~ và thành phố ~Y~.
Tương tự như vậy, một thành phố được gọi là tất yếu giữa thành phố ~X~ và thành phố ~Y~ khi mọi tuyến đường đi từ thành phố ~X~ đến thành phố ~Y~ đều bắt buộc phải đi qua thành phố đó. Bạn Khoa đặt ~G(X, Y)~ là số lượng thành phố tất yếu giữa thành phố ~X~ đến thành phố ~Y~. Lưu ý theo định nghĩa này, thành phố ~X~ và thành phố ~Y~ đều được coi là thành phố tất yếu.
Cuối cùng, bạn Khoa gọi ~H(X, Y)~ là độ vui của chuyến đi. Độ vui của chuyến đi được tính theo công thức sau: ~H(X, Y) = (F(X, Y) \times A + G(X, Y) \times B)^C~ trong đó ~A~, ~B~, và ~C~ là những hằng số cố định cho trước.
Bạn Khoa chưa quyết định được thành phố ~X~ và thành phố ~Y~ sẽ là hai thành phố nào. Là con người tò mò, bạn muốn biết tổng độ vui của tất cả các chuyến đi có thể diễn ra. Hãy giúp Khoa.
Cụ thể hơn, hãy tính tổng của ~H(X, Y)~ với mọi cặp số ~(X, Y)~ thỏa mãn ~1 \le X < Y \le N~. Vì tổng này có thể rất lớn, nên hãy in ra phần dư của tổng đó khi chia cho số ~(10^9 + 7)~.
Yêu cầu: Tính tổng độ vui của tất cả các cặp thành phố ~(X, Y)~ thỏa mãn ~1 \le X < Y \le N~ theo modulo ~10^9 + 7~.
Input
- Dòng đầu tiên ghi 5 số nguyên ~N, M, A, B, C~ (~2 \le N \le 10^5~, ~N - 1 \le M \le \min(N \times (N - 1) / 2, 2 \times 10^5)~, ~0 \le A \le 10^9~, ~0 \le B \le 10^9~, ~1 \le C \le 2~).
- Dòng thứ ~i~ trong ~M~ dòng tiếp theo ghi 2 số nguyên ~U_i~ và ~V_i~ (~1 \le U_i \le N, 1 \le V_i \le N, U_i \neq V_i~), là chỉ số của hai thành phố được nối bởi con đường thứ ~i~.
Output
- In ra phần dư của đáp án của bài toán khi chia cho số ~(10^9 + 7)~.
Bình luận