社区讨论

求助大佬

P7112【模板】行列式求值参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mhj9voai
此快照首次捕获于
2025/11/03 23:06
4 个月前
此快照最后确认于
2025/11/03 23:06
4 个月前
查看原帖
代码:
CPP
#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main()
{
	
	int n,p;
	cin>>n>>p;
	vector<vector<int>> a(n, vector<int>(n));
	
	for(int i=0; i<n; i++)
	{
		for(int j=0; j<n; j++)
		{
			cin>>a[i][j];
			a[i][j]%=p;
		}
	}
	int d = 1;
	for(int i=0; i<n; i++)
	{
		int k=i;
		for(int j=i+1; j<n; j++)
			if(abs(a[j][i])>abs(a[k][i]))
				k = j;
	  	swap(a[i],a[k]);
	  	if(i!=k) d=-d;
	  	d*=a[i][i];
	  	d%=p;
	  	for(int j=i+1; j<n; j++)
			a[i][j]/=a[i][i];
	 	for(int j=0; j<n; j++)
	    	if(j!=i)
	      		for(int k=i+1; k<n; k++)
					a[j][k]-=a[i][k]*a[j][i];
	}
	
	cout << d%p;
	return 0;
}
不知道为什么36pts 求助

回复

2 条回复,欢迎继续交流。

正在加载回复...