Try   HackMD

LBC_2F - Mũ cực mạnh

https://luyencode.net/problem/lbc_2f

Định lý Fermat nhỏ:

am11(modm) nếu
m
là số nguyên tố và
gcd(a,m)=1

Suy ra

axax%(m1)(modm)

Ví dụ, cần tính

a100mod19

a100a18a18a18a18a18a10(modm)

a10011111a10(modm)

a100a10(modm)

Vậy thay vì tính

abc, ta sẽ tính
x=bc
%
(m1)
, rồi sau đó tính
ax
%
m
.

Chú ý là truy vấn cần in ra các tổng của

abc theo thứ tự xoay vòng, ta có thể dùng một mảng tổng dồn để tính trước.