Author: loop3r
Date: 20260223
tag: 模拟
link: https://www.luogu.com.cn/problem/P4924问题描述
分析
按题意模拟。
参考代码
cpp
#include <bits/stdc++.h>
using namespace std;
int n, m, a[510][510], t[510][510];
int main() {
cin >> n >> m;
int cnt = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
a[i][j] = cnt++;
}
}
while (m--) {
int x, y, r, z;
cin >> x >> y >> r >> z;
if (z == 0) {
for (int i = x - r; i <= x + r; i++) {
for (int j = y - r; j <= y + r; j++) {
t[x - y + j][x + y - i] = a[i][j];
}
}
for (int i = x - r; i <= x + r; i++) {
for (int j = y - r; j <= y + r; j++) {
a[i][j] = t[i][j];
}
}
} else {
for (int i = x - r; i <= x + r; i++) {
for (int j = y - r; j <= y + r; j++) {
t[x + y - j][y - x + i] = a[i][j];
}
}
for (int i = x - r; i <= x + r; i++) {
for (int j = y - r; j <= y + r; j++) {
a[i][j] = t[i][j];
}
}
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}