https://scut.online/p/261
由于M不是质数,要用扩展欧几里得求逆元,而不是费马小定理!
由于M不是质数,要用扩展欧几里得求逆元,而不是费马小定理!
由于M不是质数,要用扩展欧几里得求逆元,而不是费马小定理!
最后小心逆元是负数的情况。
#includeusing namespace std;typedef long long ll;const int maxn=1010;int A[maxn][maxn],C[maxn][maxn],n,m;inline void ex_gcd(ll a,ll b,ll&x,ll&y,ll&d){ if(!b){d=a;x=1;y=0;return;} ex_gcd(b,a%b,y,x,d); y-=x*(a/b); return;}inline void solve(){ ll inv,y,d;ex_gcd(2,m,inv,y,d); inv=(inv+m)%m; for(int i=0;i 1) solve(); for(int i=0;i