S(const V<int>& arr) : arr(arr) {
     auto& a = this->arr; 
     N = a.size();
     reverse(a.begin(), a.end());
     a.push_back(0);
     reverse(a.begin(), a.end());
     
     t.resize(N+1, V<V<int>>(N+1, V<int>(N+1, -1)));        
 }
Esempio n. 2
0
main(){
	int t=1,T,r;
	for(;~scanf("%d",&r);){
		int f=1-r%2;
		V x(n*n);
		V e(n*n);
		z.resize(n*n);

		x[0]=1,x[1]=3,x[2]=1,x[3]=1;
		e[0]=1,e[3]=1; //unit

		for(;r;r>>=1){
			if(r&1)e=Me(e,x);
			x=Mx(x);
		}
		printf("%d\n",(int)(2*e[0]-f)%1000);
	}
}
Esempio n. 3
0
int main(){
	int T,a,b,r;
	for(scanf("%d",&T);T--;){
		scanf("%d%d%d",&a,&b,&r);r--;
		V x(n*n);
		V e(n*n);
		z.resize(n*n);

		x[0]=x[1]=x[2]=1;
		e[0]=1,e[3]=1;

		for(;r;r>>=1){
			if(r&1)e=Me(e,x);
			x=Mx(x);
		}
		printf("%lld\n",(e[0]*b+e[1]*a)%m);
	}
}
Esempio n. 4
0
int main(){
	int T;
	long long t,t0;
	//for(scanf("%d",&T);T--;){
		cin>>t;
		V x(n*n);
		V e(n*n);
		z.resize(n*n);

		x[0]=x[3]=3;
		x[1]=x[2]=1;
		e[0]=e[3]=1;
		for(;t;t>>=1){
			if(t&1)e=Me(e,x);
			x=Mx(x);
		}
		cout<<e[0]<<endl;
	//}
}