-
题解
#A373. 练64.2 图像旋转翻转变换
-
robin
SU
@
2025-10-19 9:23:29
#include<bits/stdc++.h>
using namespace std;
int a[101][101],b[101][101];
int n,m;
void s90(){
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
b[j][n-i-1]=a[i][j];
}
}
swap(n,m);
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
a[i][j]=b[i][j];
}
}
}
void n90(){
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
b[m-j-1][i]=a[i][j];
}
}
swap(n,m);
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
a[i][j]=b[i][j];
}
}
}
void sx(){
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
b[n-i-1][j]=a[i][j];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
a[i][j]=b[i][j];
}
}
}
void zy(){
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
b[i][m-j-1]=a[i][j];
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
a[i][j]=b[i][j];
}
}
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>a[i][j];
}
}
string s;
cin>>s;
for(int i=0;i<s.size();i++){
if(s[i]=='A') s90();
if(s[i]=='B') n90();
if(s[i]=='C') zy();
if(s[i]=='D') sx();
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cout<<b[i][j]<<" ";
}
cout<<endl;
}
return 0;
}