這題分塊搞一搞,算到最后發現結果就是算矩陣J的行列式,要取模m,那個sign消掉了。
參考文獻在這,歐幾里德算法的應用,金斌
代碼還是比較好寫的,python代碼
n,m=map(int,raw_input().split())
a=[]
for i in range(n):a.append(list(map(int,raw_input().split())))
def det(a):ans=1for i in range(n):for j in range(i+1,n):while a[j][i]!=0:t=a[i][i]//a[j][i]for k in range(i,n):a[i][k]=(a[i][k]-a[j][k]*t)%ma[i][k],a[j][k]=a[j][k],a[i][k]ans*=-1if a[i][i]==0:return 0else:ans=ans*a[i][i]%mreturn ans%mprint(det(a)%m)