样例过,WA求调
查看原帖
样例过,WA求调
1209720
CaiYuifei楼主2024/7/19 16:41

我按题解的思路写了一遍,后用我平时写矩乘特思路写了一遍,但是WA了(T▽T),本蒟蒻实在发现不了问题(╥╯^╰╥),求助大佬,%%%%%%%%%%orz感谢!!!!(◍´꒳`◍)

#include<bits/stdc++.h>  
#define int long long  
using namespace std;  
long long sx,sy,dx,dy,n,t,m,x[15];
long long aa[15],aw[15][15];  
void f1(){  
	long long c[15]={0};  
	for(int i=1;i<=6;i++){  
		for(int j=1;j<=6;j++){  
			c[i]=(c[i]+aa[j]*aw[i][j])%m;  				
		}	  
	}  
	for(int j=1;j<=6;j++){  
		aa[j]=c[j];		  
	}  
	//cout<<aa[1]+1<<' '<<aa[2]+1<<endl;
}  
inline void f2(){  
	long long cc[15][15]={0};  
	for(int i=1;i<=6;i++){  
		for(int j=1;j<=6;j++){  
			for(int k=1;k<=6;k++){  
				cc[i][j]=(cc[i][j]+aw[i][k]*aw[k][j])%m;	  	
			}  
		}  
	}  
	for(int j=1;j<=6;j++){  
		for(int k=1;k<=6;k++){  
			aw[j][k]=cc[j][k];	  
		}  
	}  
}  
inline void fplq(int q){  
	while(q){  
		if(q&1){  
			f1();  
		}  
		f2();  
		q>>=1;  
	}  
}  
signed main(){  
	ios::sync_with_stdio(0);  
	cin.tie(0),cout.tie(0);  
	cin>>n>>sx>>sy>>dx>>dy>>t;  
	m=n;  
	if (t==0){  
		cout<<sx<<' '<<sy;  
		return 0;  
	}  
aa[1]=sx-1,aa[2]=sy-1,aa[3]=dx,aa[4]=dy,aa[5]=0,aa[6]=1;  
	aw[1][1]=aw[1][6]=aw[2][2]=aw[2][6]=aw[3][6]=aw[4][6]=2;  
	aw[1][2]=aw[1][3]=aw[1][5]=aw[2][1]=aw[2][4]=aw[2][5]=aw[3][1]=aw[3][2]=aw[3][3]=aw[3][5]=aw[4][1]=aw[4][2]=aw[4][4]=aw[4][5]=aw[5][5]=aw[5][6]=aw[6][6]=1;  
	fplq(t);  
	cout<<aa[1]+1<<' '<<aa[2]+1;  
	return 0;  
}
2024/7/19 16:41
加载中...