pts52 玄关求助
查看原帖
pts52 玄关求助
556656
虫二bug2楼主2024/5/25 11:11
#include<bits/stdc++.h>
#define N 1001
using namespace std;
long long n,a[N][N],sum=0,ans=0,p;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n>>p;
	if(n==1){
		cin>>ans;
		cout<<ans%p;
		return 0;
	}
	if(n==2){
		for(int i=1;i<=4;i++)
		cin>>a[1][i],a[1][i]%p;
		ans=abs(a[1][1]*a[1][4]%p-a[1][2]*a[1][3])%p;
		cout<<ans;
		return 0; 
	}
	for(int i=1;i<=n;i++)
	for(int j=1;j<=n;j++)
	cin>>a[i][j],a[i][j]%=p;
	for(int i=0;i<n;i++){
		int t=1;
		for(int j=1;j<=n;j++){
			if(i+j>n)
			t*=a[j][(i+j)%n];
			else t*=a[j][i+j];
		}
		sum+=t;
		sum%=p;
	}
	for(int i=0;i<n;i++){
		int t=1;
		for(int j=n;j>=1;j--){
			if(j-i<1)
			t*=a[n-j+1][(j-i+n)];
			else t*=a[n-j+1][j-i];
		}
		ans+=t;
		ans%=p;
	}
	if(ans<sum)ans=(sum-ans)%p;
	else ans=(ans-sum)%p;
	cout<<ans;
}
2024/5/25 11:11
加载中...