注意 mn−m×(m−1)n−1m^n-m\times(m-1)^{n-1}mn−m×(m−1)n−1 可能 <0<0<0。
如#6的数据输入为210871 96132421 如果没有考虑这种情况,会输出-34922 实际上应为65081
210871 96132421
-34922
65081
因此程序结尾
cout<<((qpow(m,n)%p)-m*(qpow(m-1,n-1))%p)%p;
应改为
cout<<((qpow(m,n)%p)-m*(qpow(m-1,n-1))%p+p)%p;
还有,别把 mmm 和 nnn 看反了。