神秘的行列式

点赞破5,讲个好证明的高斯消元。
一道算法总得有模版题
不会打 LATEX 直接贴张图片。
image
我们先不管这个题。
思考这么一个问题。
给定 nn 维向量,求它构造出的 n 维物体的体积是多少。
我们看它满足什么性质。
1. 将一条边延长 k 倍,体积乘 k
2. 交换两个向量体积取反。
然后根据一大堆式子(我是蒟蒻不会推,会推了,会再发一篇)
得到体积就是行列式的值
然后可以根据这性质弄到一个倒三角矩阵。
最终答案就是对角线和。
我们再准备一个变量,每交换两行,就 +1 ,最终如果是奇数 ans=-ans
给出行列式怎么求,求值写得很明白值自己思考。

for(int i=1;i<=n;++i)
{
	for(int j=i+1;j<=n;++j)
	{
		while(a[i][i])
		{
			int val=a[j][i]/a[i][i];
			for(int k=i;k<=n;++k) a[j][k]-=val*a[i][k],a[j][k]%=Mod;
			cnt++;
			swap(a[i],a[j]);
		}
		cnt++;
		swap(a[i],a[j]);
	}
}
2 个赞