求救WA#10
查看原帖
求救WA#10
801159
RH233楼主2024/6/9 17:56
#include<bits/stdc++.h>
#define ll long long
#define N 3
using namespace std;
ll mod=1e9+7;
ll k,n=2,a[3][3]={{},{0,1,1},{0,1,0}},sum[3][3]={{},{0,1,0},{0,0,1}},p,q,x,y,f2[3][3]={};
void f(ll a[N][N],ll b[N][N],ll c[N][N]){
	int t[N][N];
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			t[i][j]=0;
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			for(int k=1;k<=n;k++){
				t[i][j]+=a[i][k]%mod*b[k][j]%mod;
				t[i][j]%=mod;
			}
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			c[i][j]=t[i][j];
		}
	}
}
signed main(){
	cin>>p>>q>>x>>y>>k>>mod;
	if(k==1){
		cout<<x;
		return 0;
	}else if(k==2){
		cout<<y;
		return 0;
	}
	k-=2;
	f2[1][1]=y;
	f2[1][2]=x;
	a[1][1]=p;
	a[2][1]=q;
	while(k){
		if(k%2==1) f(sum,a,sum);
		f(a,a,a);
		k/=2;
	}
	f(f2,sum,f2);
	cout<<f2[1][1];
	return 0; 
}
2024/6/9 17:56
加载中...