P4924 [1007]魔法少女小Scarlet

Posted Kunkun只喝怡宝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P4924 [1007]魔法少女小Scarlet相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

代码

1、先将数组a依次赋值
2、对于每次输入的命令,执行顺时针或逆时针的对应操作
,先将指定2r+1阶数组按顺时针或逆时针顺序存入数组b,然后再将数组b按正常顺序存进2r+1阶的数组。

#include<bits/stdc++.h>

using namespace std;

int a[500][500],b[250000],n,m;
int main(){
	int i,j,k=1;
	int x,y,r,z,u;
	cin>>n>>m;
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			a[i][j]=k++;
	for(i=0;i<m;i++){
		cin>>x>>y>>r>>z;
		if(z==0){
			u=0;
			for(j=y-r;j<=y+r;j++)
				for(k=x+r;k>=x-r;k--)
					b[u++]=a[k][j];
			u=0;
			for(k=x-r;k<=x+r;k++)
				for(j=y-r;j<=y+r;j++)
					a[k][j]=b[u++];
		}else{
			u=0;
			for(j=y+r;j>=y-r;j--)
				for(k=x-r;k<=x+r;k++)
					b[u++]=a[k][j];
			u=0;
			for(k=x-r;k<=x+r;k++)
				for(j=y-r;j<=y+r;j++)
					a[k][j]=b[u++];
		}
	}
	for(i=1;i<=n;i++){
		for(j=1;j<=n;j++)
			cout<<a[i][j]<<" ";
		cout<<endl;
	}
	return 0;
}

以上是关于P4924 [1007]魔法少女小Scarlet的主要内容,如果未能解决你的问题,请参考以下文章

魔法少女动态规划问题——NYOJ1204

bzoj 4399 魔法少女LJJ

动态规划_基础_最长公共子序列_多种方法_递归/dp

数据结构作业——魔法少女(平衡二叉树)

BZOJ4399魔法少女LJJ 线段树合并

AC日记——魔法少女LJJ bzoj 4399