Luogu P4924 [1007] 魔法少女小Scarlet
[1007] 魔法少女小Scarlet
题目描述
Scarlet 最近学会了一个数组魔法,她会在
首先,Scarlet 会把
Scarlet 既不会什么分块特技,也不会什么 Splay 套 Splay,她现在提供给你她的魔法执行顺序,想让你来告诉她魔法按次执行完毕后的二维数组。
输入格式
第一行两个整数
接下来
输出格式
输出
样例 #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%的数据,满足
对于100%的数据
思路
由题意模拟。旋转矩阵点
代码实现
#include<bits/stdc++.h> using namespace std; int a[505][505],b[505][505]; int main() { ios::sync_with_stdio(false); int n,m,cnt=0; cin>>n>>m; a[1][1]=1; for(int i=1;i<=n;i++) { if(i!=1) a[i][1]=a[i-1][1]+n; for(int j=1;j<=n;j++) { if(j!=1) a[i][j]=a[i][j-1]+1; b[i][j]=a[i][j]; } } for(int k=1;k<=m;k++) { int x,y,r,z; cin>>x>>y>>r>>z; if(z==0) { for(int i=-r;i<=r;i++) { for(int j=-r;j<=r;j++) { b[x+j][y-i]=a[x+i][y+j]; } } } if(z==1) { for(int i=-r;i<=r;i++) { for(int j=-r;j<=r;j++) { b[x-j][y+i]=a[x+i][y+j]; } } } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { a[i][j]=b[i][j]; } } } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cout<<a[i][j]<<" "; } cout<<endl; } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话