救救孩子吧
查看原帖
救救孩子吧
112569
Time_tears楼主2021/4/5 22:06

这份代码蒟蒻真的卡不来常了,求大佬帮忙看看是写错了还是真的被卡常了

#include<bits/stdc++.h>
using namespace std;
int n,mod;
long long a[605][605];
inline int read() {
	int s=0;
	char ch=getchar();
	while(ch<48||ch>57)ch=getchar();
	while(ch>47&&ch<58)s=(s<<1)+(s<<3)+(ch^48),ch=getchar();
	return s;
}
int Mod(int x) {
	return x<mod?x:x-mod;
}
int Work(int n,int opt=1,int ans=1) {
	for(int i=1; i<=n; ++i)
		for(int j=i+1; j<=n; ++j)
			while(a[j][i]) {
				int tmp=a[i][i]/a[j][i];
				for(int k=1; k<=n; ++k)a[i][k]=Mod(a[i][k]-a[j][k]*tmp%mod+mod);
				for(int k=1; k<=n; ++k)a[i][k]^=a[j][k]^=a[i][k]^=a[j][k];
				opt=-opt;
			}
	for(int i=1; i<=n; ++i)ans=a[i][i]%mod*ans%mod;
	return (ans*opt%mod+mod)%mod;
}
signed main() {
	n=read(),mod=read();
	for(int i=1; i<=n; ++i)for(int j=1; j<=n; ++j)a[i][j]=read();
	cout<<Work(n);
	return 0;
}
2021/4/5 22:06
加载中...