NC16288. 第七道题
描述
输入描述
首先输入一个9 x 9的字母矩阵,表示刚开始卡片的形状,然后第二行输入一个字符串(只包含1-7的数字,每个数字的大小对应的相应操作),代表一系列的操作(表示操作的字符串的长度|s|,1<=|s|<=100)。
输出描述
输出一个9 x 9的字母矩阵,表示所有操作执行完后卡片的形状。
示例1
输入:
MMMMMMMMM WWWWWWWWW ||||||||| --------- ......... ......... EEEEEEEEE 333333333 --------- 1234567
输出:
--------- EEEEEEEEE 333333333 ......... ......... --------- ||||||||| MMMMMMMMM WWWWWWWWW
C++ 解法, 执行用时: 5ms, 内存消耗: 456K, 提交时间: 2022-02-15 11:44:31
#include<iostream> using namespace std; string s[9]; int m[128]; string inis[7]={"3EWM-|.","WME3|-.","E3MW-|.","WM3E|-.","MWE3|-.","E3WM-|.","3EMW-|."}; void solve_pic(int op) { string temp[9]; for(int i=0;i<9;i++) temp[i]=s[i]; for(int i=0;i<9;i++) for(int j=0;j<9;j++) if(op==1) s[i][j]=inis[op-1][m[temp[8-j][i]]]; else if(op==2) s[i][j]=inis[op-1][m[temp[8-i][8-j]]]; else if(op==3) s[i][j]=inis[op-1][m[temp[j][8-i]]]; else if(op==4) s[i][j]=inis[op-1][m[temp[8-i][j]]]; else if(op==5) s[i][j]=inis[op-1][m[temp[i][8-j]]]; else if(op==6) s[i][j]=inis[op-1][m[temp[j][i]]]; else if(op==7) s[i][j]=inis[op-1][m[temp[8-j][8-i]]]; return ; } int main() { m['W']=1; m['3']=2; m['E']=3; m['|']=4; m['-']=5; m['.']=6; for(int i=0;i<9;i++) cin>>s[i]; string q; cin>>q; int n=(int)q.size(); for(int i=0;i<n;i++) solve_pic(q[i]-'0'); for(int i=0;i<9;i++) cout<<s[i]<<endl; return 0; }