求助10pts
查看原帖
求助10pts
679961
zhang_kevin楼主2023/5/27 17:14
#include<bits/stdc++.h>
using namespace std;
inline int ksm(int a, int b, int p){
	int res = 1;
	while(b){
		if(b & 1) res = res * a % p;
		a = a * a % p;
		b >>= 1;
	}
	return res;
}
inline string U1(string s){
	//无需操作
	return s;
}
inline string U3(string s){
	char a = s[4], b = s[10], c = s[11];
	s[4] = b, s[10] = c, s[11] = a; 
	return s;
}
inline string U5(string s){
	char a = s[1], b = s[5], c = s[6], d = s[12], e = s[13];
	s[1] = b, s[5] = c, s[6] = d, s[12] = e, s[13] = a;
	return s;
}
inline string U7(string s){
	char a = s[0], b = s[2], c = s[3], d = s[7], e = s[8], f = s[14], g = s[15];
	s[0] = b, s[2] = c, s[3] = d, s[7] = e, s[8] = f, s[14] = g, s[15] = a;
	return s;
}
inline string R1(string s){
	//无需操作
	return s;
}
inline string R3(string s){
	char a = s[1], b = s[2], c = s[3];
	s[1] = c, s[2] = a, s[3] = b;
	return s;
}
inline string R5(string s){
	char a = s[4], b = s[5], c = s[6], d = s[7], e = s[8];
	s[4] = e, s[5] = a, s[6] = b, s[7] = c, s[8] = d;
	return s;
}
inline string R7(string s){
	char a = s[9], b = s[10], c = s[11], d = s[12], e = s[13], f = s[14], g = s[15];
	s[9] = g, s[10] = a, s[11] = b, s[12] = c, s[13] = d, s[14] = e, s[15] = f;
	return s;
}
inline string D1(string s){
	//无需操作
	return s;
}
inline string D3(string s){
	char a = s[8], b = s[14], c = s[13];
	s[8] = c, s[14] = a, s[13] = b;
	return s;
}
inline string D5(string s){
	char a = s[3], b = s[7], c = s[6], d = s[12], e = s[11];
	s[3] = e, s[7] = a, s[6] = b, s[12] = c, s[11] = d;
	return s;
}
inline string D7(string s){
	char a = s[0], b = s[2], c = s[1], d = s[5], e = s[4], f = s[10], g = s[9];
	s[0] = g, s[2] = a, s[1] = b, s[5] = c, s[4] = d, s[10] = e, s[9] = f;
	return s;
}
inline string U(string s, int num){
	if(num == 1){
		s = U1(s);
	}else if(num == 3){
		s = U3(s);
	}else if(num == 5){
		s = U5(s);
	}else if(num == 7){
		s = U7(s);
	}
	return s;
}
inline string R(string s, int num){
	if(num == 1){
		s = R1(s);
	}else if(num == 3){
		s = R3(s);
	}else if(num == 5){
		s = R5(s);
	}else if(num == 7){
		s = R7(s);
	}
	return s;
}
inline string D(string s, int num){
	if(num == 1){
		s = D1(s);
	}else if(num == 3){
		s = D3(s);
	}else if(num == 5){
		s = D5(s);
	}else if(num == 7){
		s = D7(s);
	}
	return s;
}
inline string caozuo(string s, char op, int num){
	if(op == 'U'){
		s = U(s, num); 
	}else if(op == 'R'){
		s = R(s, num);
	}else if(op == 'D'){
		s = D(s, num);
	}
	return s;
}
inline string Solve(string str, string s){
	for(int i = 0; i < s.length(); i++){
		s = caozuo(s, str[i], str[i+1]-'0');
		i++;
	}
	return s;
}
int main(){
	string s = "ABCDEFGHIJKLMNOP", str;
	int a, b;
	cin >> str >> a >> b;
	int T = ksm(a, b, 105);
	while(T--) s = Solve(str, s);
	cout << s << endl;
	return 0;
}
2023/5/27 17:14
加载中...