题目链接
数据量不大,直接开模拟即可。
此题恶心的地方就是题意理解与下标模拟。
首先,按要求初始化一个二维数组并填充 [ 1 , n 2 ] [1,n^{2}] [1,n2]。
然后,分别进行每一次旋转。 旋转到底是什么意思? 其实就是矩阵转置,一个大家入门编程都写过的一个题。 如果不明白的话可以自己画画图,其实围绕中心旋转的话,和转置真的一样。 本题与转置不同的地方在于:在顺时针转和逆时针转两种情况、小范围旋转而外部不变。
所以可以暴力开一个和原数组等大的二维数组,用于把需要处理的范围的元素做备份,然后按要求覆盖原数组即可。
顺时针的公式是: g r a p h [ x + k ] [ y − j ] = t e m p [ x + j ] [ y + k ] graph[x+k][y-j] = temp[x+j][y+k] graph[x+k][y−j]=temp[x+j][y+k] 逆时针的公式是: g r a p h [ x − k ] [ y + j ] = t e m p [ x + j ] [ y + k ] graph[x-k][y+j] = temp[x+j][y+k] graph[x−k][y+j]=temp[x+j][y+k]
AC代码#include
using namespace std;
int graph[521][521], temp[521][521];
int main() {
int n, m, x, y, r, z;
cin >> n >> m;
// 初始化
for(int i = 0, j, k = 1; i > y >> r >> z;
x--;
y--;
// 暂存
for (int j = -r; j
关注
打赏
- 【Linux】Ubuntu20.04安装和卸载MySQL8
- 【Linux】Ubuntu 20.04 报错 curl: (23) Failure writing output to destination 的解决方法
- 【Java】JUnit 4.13.2 警告 ‘assertEquals(double, double)‘ is deprecated 的解决方法
- 【JavaScript】处理 @parcel/transformer-js: Browser scripts cannot have imports or exports.
- 【Python】处理TypeError: Plain typing.NoReturn is not valid as type argument
- 【Python】Matplotlib可视化50例
- 【C语言】C语言修改MySQL数据库
- 【Java】从默认包导入类和对象报错的解决方法
- 【Java】panel.getGraphics()报错空指针异常的解决方法
- 【Java】IDEA编译Java项目报错 java: 找不到符号 的解决方法