P4924 [1007]魔法少女小Scarlet

P4924 [1007]魔法少女小Scarlet

题目描述

P4924 [1007]魔法少女小Scarlet_第1张图片

代码
#include
using namespace std;
int g[510][510],tot,f[510][510];//f数组充当旋转数组 
int main() {
	int n,m;
	cin>>n>>m;
	for(int i=1; i<=n; i++)
		for(int j=1; j<=n; j++)
			g[i][j]=++tot;
	for(int i=1; i<=m; i++) {
		int a,b,r,z;
		cin>>a>>b>>r>>z;
		if(z==0) {//第i行第j个 变成倒数第i列第j个 顺时针 
			for(int i=a-r; i<=a+r; i++)
				for(int j=b-r; j<=b+r; j++)
					f[a-b+j][a+b-i]=g[i][j];
			for(int i=a-r; i<=a+r; i++)
				for(int j=b-r; j<=b+r; j++)
					g[i][j]=f[i][j];
		} else {//第i行第j个 变成第i列倒数第j个 逆时针 
			for(int i=a-r; i<=a+r; i++)
				for(int j=b-r; j<=b+r; j++)
					f[a+b-j][b-a+i] = g[i][j];
			for(int i=a-r; i<=a+r; i++)
				for(int j=b-r; j<=b+r; j++)
					g[i][j] = f[i][j];
		}

	}
	for(int i=1; i<=n; i++) { //输出结果
		for(int j=1; j<=n; j++)
			cout<
参考

https://www.cnblogs.com/wsy107316/p/10705963.html

https://www.cnblogs.com/suke99/p/5183993.html

旋转图像(二维数组的旋转)——LeetCode数组算法题(原地旋转):https://blog.csdn.net/likunkun__/article/details/80753948

【初级算法】-- 7.顺时针旋转二维数组90度
https://blog.csdn.net/YYZZHC999/article/details/88782827

http://www.nowamagic.net/librarys/veda/detail/1044

你可能感兴趣的:(洛谷)