当前位置: 首页 > news >正文

小聪转转转

题目描述

小聪最近学会了一个数组魔法,她会在n×n二维数组上将一个奇数阶方阵按照顺时针或者逆时针旋转90度。首先,小聪会把1到n²的正整数按照从左往右,从上至下的顺序填入初始的二维数组中,然后她会施放一些简易的魔法。小聪现在提供给你她的魔法执行顺序,想让你来告诉她魔法按次执行完毕后的二维数组。

输入

输入第一行两个整数n, m,表示方阵大小和魔法施放次数。接下来m行,每行4个整数x, y, r, z,表示在这次魔法中,小聪会把以第x行第y列为中心的2r+1阶方阵按照某种时针方向旋转,其中z=0表示顺时针,z=1表示逆时针。

输出

输出n行,每行n个用空格隔开的数,表示最终所得的方阵。

样例输入

5 4
2 2 1 0
3 3 1 1
4 4 1 0
3 3 2 1

样例输出

5 10 3 18 15
4 19 8 17 20
1 14 23 24 25
6 9 2 7 22
11 12 13 16 21

示例代码: 

#include<iostream>
#include<cstring>
using namespace std;
int square[505][505],temp[505][505];
 
void spin(int x,int y,int r)
{
    for(int i=x-r;i<=x+r;i++)
    {
        for(int k=y-r;k<=y+r;k++)
            temp[i][k]=square[i][k];
    }
    int x1=x+r,y1=y-r;
    for(int i=x-r;i<=x+r;i++)
    {
        for(int k=y-r;k<=y+r;k++)
        {
            square[i][k]=temp[x1][y1];
            x1--;
        }
        x1=x+r,y1++;
    }
}
 
void spin_(int x,int y,int r)
{
    for(int i=x-r;i<=x+r;i++)
    {
        for(int k=y-r;k<=y+r;k++)
            temp[i][k]=square[i][k];
    }
    int x1=x-r,y1=y+r;
    for(int i=x-r;i<=x+r;i++)
    {
        for(int k=y-r;k<=y+r;k++)
        {
            square[i][k]=temp[x1][y1];
            x1++;
        }
        y1--,x1=x-r;
    }
}
 
int main()
{
    int n,m,t=0;
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        for(int k=1;k<=n;k++)
            square[i][k]=++t;
    }
    int x,y,r,z;
    for(int i=0;i<m;i++)
    {
        cin>>x>>y>>r>>z;
        if(z==0)
            spin(x,y,r);
        else if(z==1)
            spin_(x,y,r);
    }
    for(int i=1;i<=n;i++)
    {
        for(int k=1;k<=n;k++)
            cout<<square[i][k]<<" ";
        cout<<endl;
    }
}

相关文章:

  • LinkedList底层结构和源码分析(JDK1.8)
  • OpenFeign的配置类可以进行哪些配置
  • Could not find resource...
  • synchronized与 Java内置锁(未写完)
  • PyCharm 2019.1.3使用python3.9创建虚拟环境setuptools-40.8.0报错处理
  • 干货:Farrow设计实现详解
  • 【论文精读】DifFace: Blind Face Restoration with Diffused Error Contraction
  • Global Mapper 多功能的GIS软件
  • 【自学笔记】SQL Server基础知识点总览-持续更新
  • 【Mapbox】介绍及基本使用
  • Umi从零搭建Ant Design Pro项目(1)
  • 准确率(Precision)和召回率(Recall)
  • 【数据结构初阶第十九节】八大排序系列(下篇)—[详细动态图解+代码解析]
  • 正点原子[第三期]Arm(iMX6U)Linux移植学习笔记-5.1 uboot顶层Makefile分析-VSCode工程创建
  • 【RTSP】客户端(四) 解复用器
  • easypoi导入Excel兼容日期和字符串格式的日期和时间
  • HCIA-AI人工智能笔记2:大模型演进趋势
  • Dify Docker 私有化部署遇到的问题
  • 合React宝宝体质的自定义节流hook
  • Compose 实践与探索十 —— 其他预先处理的 Modifier
  • 格桑花盛放上海,萨迦艺术团襄阳公园跳起藏族舞
  • 特朗普称将禁止伊朗石油买家与美国做生意
  • 国泰海通合并后首份业绩报告出炉:一季度净利润增逾391%
  • 体坛联播|欧冠半决赛阿森纳主场不敌巴黎,北京男篮险胜山西
  • 事关稳就业稳经济,10张海报看懂这场发布会的政策信号
  • 国家发改委回应美加征关税:典型的单边主义霸凌做法