作者:心理学点滴_312 | 来源:互联网 | 2023-10-10 08:06
%%%%%%%%%Jin Bin
欧几里得消元
相当好用
#include
#include
#include
using namespace std;
typedef long long ll;
ll a[205][205],p;
int n;
ll Gauss(){for(int i&#61;1;i<&#61;n;i&#43;&#43;)for(int j&#61;1;j<&#61;n;j&#43;&#43;)a[i][j]&#61;(a[i][j]%p&#43;p)%p;ll ans&#61;1;for(int i&#61;1;i<&#61;n;i&#43;&#43;){for(int j&#61;i&#43;1;j<&#61;n;j&#43;&#43;)while(a[j][i]){ll t&#61;a[i][i]/a[j][i];for(int k&#61;i;k<&#61;n;k&#43;&#43;)(a[i][k]-&#61;a[j][k]*t)%&#61;p;for(int k&#61;i;k<&#61;n;k&#43;&#43;)swap(a[i][k],a[j][k]);ans&#61;-ans;}if(!a[i][i])return 0;ans&#61;ans*a[i][i]%p;}return (ans&#43;p)%p;
}
int main(){//freopen("a.in","r",stdin);//freopen("a.out","w",stdout);while(~scanf("%d%lld",&n,&p)){for(int i&#61;1;i<&#61;n;i&#43;&#43;)for(int j&#61;1;j<&#61;n;j&#43;&#43;)scanf("%lld",&a[i][j]);printf("%lld\n",Gauss());}return 0;
}