2020 ICPC 線上模擬賽 I題 Character Wheels(模擬)
I Character Wheels
思路
順時針旋轉,座標的變化為i , j --> j n-i+1,將逆時針轉換成順時針,模擬即可
程式碼
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int maxn = 1e2 + 10;
const int INF = 5e8 + 10;
char mp[maxn][maxn];
int n;
void print(){
for(int i = 1; i <= n; i++){
printf("%s\n", mp[i] + 1);
}
}
void change(int x){
char tem[maxn][maxn];
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
tem[i][j] = mp[i][j];
int j = x;
for(int i = x; i <= n - x + 1; i++)
tem[j][n - i + 1] = mp[i][j];
for(int i = x; i <= n - x + 1; i++)
tem[i][n - j + 1] = mp[j][i];
j = n - x + 1;
for(int i = x; i <= n - x + 1; i++)
tem[j][n - i + 1] = mp[i][j];
for(int i = x; i <= n - x + 1; i++)
tem[i][n - j + 1] = mp[j][i];
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
mp[i][j] = tem[i][j];
}
int main(){
scanf("%d", &n);
for(int i = 1; i <= n; i++){
scanf("%s", mp[i] + 1);
}
int m; scanf("%d", &m);
while(m--){
char ch[10]; scanf("%s", ch);
if(ch[0] == 'P'){
print();
}else{
int x, y;
scanf("%d %d", &x, &y);
if(ch[0] == 'L'){///逆時針等價成順時針
for(int i = 1; i <= 4 - y % 4; i++)
change(x);
}else{
for(int i = 1; i <= y % 4; i++)
change(x);
}
}
}
return 0;
}
相關文章
- 2020 ICPC 線上模擬賽 E題 Eat Walnuts(區間dp)
- 模擬賽雜題
- 2020/11/22模擬賽
- 10.6 模擬賽(NOIP 模擬賽 #9)
- 10.31 模擬賽題解
- 模擬賽
- 2024.11.20 NOIP模擬 - 模擬賽記錄
- 11.26 模擬賽
- 20241016 模擬賽
- 11.11模擬賽
- 模擬賽 2
- 1114模擬賽
- 11.27 模擬賽
- 11.22 模擬賽
- 11.21 模擬賽
- 11.23 模擬賽
- 1123模擬賽
- 1101模擬賽
- 11.3 模擬賽
- 2024.11.2 模擬賽
- 10.30 模擬賽
- 10.18 模擬賽
- 2024.10.16 模擬賽
- 1022模擬賽
- 10.13 模擬賽
- 10.12 模擬賽
- 10.7 模擬賽
- 1002模擬賽
- 9.12 模擬賽
- 9.2 模擬賽
- 8.5 模擬賽
- 8.2 模擬賽
- 2024.7.13 模擬賽
- 5.4 模擬賽
- 2024.2.18 模擬賽
- 2024.1.26 模擬賽
- 2024.1.23 模擬賽
- 2024.3.30 模擬賽