【P4924】[1007] 魔法少女小Scarlet

2024-03-26 02:36
文章标签 魔法 少女 1007 p4924 scarlet

本文主要是介绍【P4924】[1007] 魔法少女小Scarlet,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[1007] 魔法少女小Scarlet

题目描述

Scarlet 最近学会了一个数组魔法,她会在 n × n n\times n n×n 二维数组上将一个奇数阶方阵按照顺时针或者逆时针旋转 9 0 ∘ 90^\circ 90

首先,Scarlet 会把 1 1 1 n 2 n^2 n2 的正整数按照从左往右,从上至下的顺序填入初始的二维数组中,然后她会施放一些简易的魔法。

Scarlet 既不会什么分块特技,也不会什么 Splay 套 Splay,她现在提供给你她的魔法执行顺序,想让你来告诉她魔法按次执行完毕后的二维数组。

输入格式

第一行两个整数 n , m n,m n,m,表示方阵大小和魔法施放次数。

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

输出格式

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

样例 #1

样例输入 #1

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

样例输出 #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

提示

对于50%的数据,满足 r = 1 r=1 r=1

对于100%的数据 1 ≤ n , m ≤ 500 1\leq n,m\leq500 1n,m500,满足 1 ≤ x − r ≤ x + r ≤ n , 1 ≤ y − r ≤ y + r ≤ n 1\leq x-r\leq x+r\leq n,1\leq y-r\leq y+r\leq n 1xrx+rn,1yry+rn

超级厉害的 @ P l e a s a n t @Pleasant @Pleasant_ g o a t goat goat_ 17 17 17的题解

#include<iostream>
using namespace std;int n,m;void Magic(int (*mt)[500],int x,int y,int r,int z){int ro =r;int tmp[500];int xs = x-r,ys=y-r,xe=x+r,ye =y+r;for(int p = 0;p<r;p++){if(z){for(int i=ys,j=xs,m=0;i<ye;i++,j++){tmp[m++] = mt[xs][i];mt[xs][i] = mt[j][ye];}for(int i=ye,j=xs;i>ys;i--,j++){mt[j][ye] = mt[xe][i];}for(int i=ye,j=xe;i>ys;i--,j--){mt[xe][i] = mt[j][ys];}for(int i=xe,m=0;i>xs;i--){mt[i][ys] = tmp[m++];}}else{for(int i=ys,j=xe,m=0;i<ye;i++,j--){tmp[m++] = mt[xs][i];mt[xs][i] = mt[j][ys];}for(int i=ye,j=xe;i>ys;i--,j--){mt[j][ys] = mt[xe][i];}for(int i=ye,j=xs;i>ys;i--,j++){mt[xe][i] = mt[j][ye];}for(int i=xs,m=0;i<xe;i++){mt[i][ye] = tmp[m++];}}xs++,xe--,ys++,ye--;}return;
}int main()
{cin >> n >> m;if (n > 500) {  cerr << "错误: n需要小于100." << endl;  return 1;  }  int mt[500][500] = {0};int num = 1;for(int i=0;i<n;i++){for(int j=0;j<n;j++){mt[i][j] = num++;}}for(int i=0;i<m;i++){int x,y,r,z;cin >> x >> y >> r >> z;x--;y--;Magic(mt,x,y,r,z);}for(int i=0;i<n;i++){for(int j=0;j<n;j++){cout << mt[i][j] << " ";}cout << endl;}return 0;
}

这篇关于【P4924】[1007] 魔法少女小Scarlet的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/847033

相关文章

探索Python的数学魔法:Numpy库的神秘力量

文章目录 探索Python的数学魔法:Numpy库的神秘力量背景:为什么选择Numpy?Numpy是什么?如何安装Numpy?五个简单的库函数使用方法场景应用常见Bug及解决方案总结 探索Python的数学魔法:Numpy库的神秘力量 背景:为什么选择Numpy? 在Python的世界中,数据处理和科学计算是不可或缺的一部分。但原生Python在处理大规模数据时可能会显

玩转Python Turtle库,实现满屏飘字的魔法!

前言     本文将教你如何使用Python的Turtle库,通过简单的编程实现满屏飘字的炫酷效果。无需复杂的编程知识,跟着我们的步骤,你也可以成为编程小达人! 效果展示 开发过程 一、准备工作 首先,确保你的电脑上已经安装了Python环境。然后,你需要安装或更新Turtle库(通常Python安装时自带了Turtle库)。 二、编写代码 接下来,我们将通过编写一个简单的P

重复采样魔法:用更多样本击败单次尝试的最强模型

这篇文章探讨了通过增加生成样本的数量来扩展大型语言模型(LLMs)在推理任务中的表现。 研究发现,重复采样可以显著提高模型的覆盖率,特别是在具有自动验证工具的任务中。研究还发现,覆盖率与样本数量之间的关系可以用指数幂律建模,揭示了推理时间的扩展规律。尽管多数投票和奖励模型在样本数量增加时趋于饱和,但在没有自动验证工具的任务中,识别正确样本仍然是一个重要的研究方向。 总体而言,重复采样提供了一种

07_TensorFlow2图像编解码大揭秘:让图片说‘变’就‘变’,魔法还是科技?

1. 图像的编码和解码 在实际应用中,图像数据源格式多种多样,如:png\jpg\bmp等,而神经网络训练模型所需的图像的数据格式为:图像字节数据或Base64编码数据等。基于此,将png\jpg\bmp等格式的图像转换为字节数据的过程称为图像编码,将字节数据的图像转换为png\jpg\bmp等格式图像的过程称为图像解码。 2. 图像编码 Tensorflow图像编码的过程如下图所示,分

【Jupyter】 Notebook 中的 IPython 魔法:12个必知实用技巧

Jupyter Notebook 作为一个强大的交互式计算环境,结合 IPython 的功能,为数据科学家和程序员提供了丰富的工具。本文将介绍12个在 Jupyter Notebook 中使用 IPython 的实用技巧 1. 清除输出:使用 clear_output() from IPython.display import clear_output# 执行一些操作print("This

【深度学习 激活函数】激活函数:深度学习界的“魔法药剂”

大家好!今天我们来聊聊深度学习中的一个重要角色——激活函数。你是否曾经好奇过,为什么神经网络能像魔法一样识别图片、理解和生成文字?答案就在于这些神奇的激活函数! 激活函数:神经网络的“心跳” 想象一下,神经网络就像一个巨大的生物体,而激活函数就是它的心跳。没有心跳,生物体就无法生存;同样,没有激活函数,神经网络就无法正常工作。 激活函数的“魔法” 激活函数就像是给神经网络施加了魔法,让它们

【C#编程技术总结】魔法包唤醒同一局域网设备

目录 一、原理 Wake-on-LAN (WOL) 的工作原理 典型应用场景 配置要求 注意事项 二、代码 一、原理 魔术包(Magic Packet)是Wake-on-LAN(WOL)技术的一部分,它允许远程唤醒网络设备,如计算机或服务器。这个功能通常用于节能和远程管理,当设备处于待机或休眠状态时,可以通过网络将其唤醒,而无需物理操作。 Wake-on-LAN (WOL

Python中的集合魔法:解锁高效数据处理的秘密

引言 集合是一种不允许重复元素的数据结构,并且其内部元素无序排列。这种特性使得集合在某些场景下表现得极为出色: 去重:快速去除列表或数组中的重复项。交集、并集、差集等运算:用于比较两个或多个集合间的关系,非常适用于权限控制、用户管理等领域。性能优势:相较于列表,集合在查找元素时速度更快,平均时间复杂度为O(1)。 基础语法介绍 创建集合 在Python中创建一个空集合需要使用set()函

AI少女/HS2甜心选择2 仿崩坏3卡系列全合集打包

内含AI少女/甜心选择2 仿崩坏3系列全合集打包共11张 内含:月魄装 幽兰黛尔+幽兰黛尔+薪炎之律者+青鸟之庭+帕朵菲莉丝+雷电芽衣校服+布洛妮娅+八重樱 冰海琴音+爱衣 悠闲旋律+爱莉希雅+EVA 明日香。 下载地址:https://www.51888w.com/241.html 部分演示图:

CSS选择器的魔法:探索:not-child()与:nth-child()

CSS选择器是前端开发中的强大工具,它们允许我们以精确的方式选择和操作网页上的元素。在这篇文章中,我们将深入探讨两个非常有用的CSS选择器::not-child()和:nth-child()。通过这些选择器,我们可以创建动态且具有吸引力的网页布局。 :not-child():排除特定元素 :not-child()选择器允许我们排除特定元素,从而对其他元素应用样式。这在创建复杂的布局时非常有用,