#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int d[5050];
int tag[50][50];
int n,m;
int run(int f,int z,int de[])
{
if(z==2)
{
//cout<<"xx "<<de[0]<<' '<<de[3]<<' '<<de[1]<<' '<<de[2]<<' '<<de[0]*de[3]-de[1]*de[2]<<endl;
return de[0]*de[3]-de[1]*de[2];
}
int sum=0;
f=1;
for(int i=0;i<z;i++)
{
int dp[z*z+2];
for(int x=1,xx=0;xx<z-1;x++,xx++)
{
for(int y=0,yy=0;y<z;y++)
{
if(y!=i)
{
dp[xx*(z-1)+yy]=de[x*z+y%z];
//cout<<dp[xx*(z-1)+yy]<<' '<<xx*(z-1)+yy<<' ';
yy++;
}
}
// cout<<endl;
}
//cout<<endl;
sum+=f*de[i]*run(f,z-1,dp);
// cout<<de[i]<<' '<<f<<' '<<sum<<' '<<endl;
f=-f;
}
return sum;
}
int main()
{
while(cin>>n>>m)
{
int l=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>d[l];
l++;
}
}
cout<<run(1,n,d)<<endl;
}
}
n阶 行列式计算
最新推荐文章于 2024-04-30 15:55:00 发布