1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int sol(int x)//行列式长度
{
int res=1,w=1;
for(int i=1;i<=x;i++)
{
for(int j=i+1;j<=x;++j)
{
while(a[i][i])
{
int div=a[j][i]/a[i][i];
for(int k=i;k<=x;++k)
{
a[j][k]=(a[j][k]-1ll*div*a[i][k]);
}
swap(a[i],a[j]);w=-w;
}//对第 i 行和第 j 行做辗转相减。
swap(a[i],a[j]);w=-w;
}
}
for(int i=1;i<=x;i++)res=1ll*a[i][i]*res;
res=1ll*w*res;
return res;
}