求助大佬们帮帮忙!10分,样例没问题
查看原帖
求助大佬们帮帮忙!10分,样例没问题
251452
Shengjiehu楼主2021/4/19 16:47
#include<bits/stdc++.h>
using namespace std;
int jz1[5500][5500],jz2[5500][5500];
int n,m;//边长,次数 
int x,y,r,z;//行,列,半径,操作 
void cz(){
	//center:jz[x][y]
	int x1,y1,x2,y2;
	x1=x-r;
	y1=y-r;
	x2=x+r;
	y2=y+r;
	if(z==0){//顺时针 
		int temp=0;
		for(int i=x-r;i<=2*r+x-r;i++)
		{
			for(int j=y-r;j<=2*r+x-r;j++){
				jz2[j][2*r+x-r-temp]=jz1[i][j];
			}
			temp++;
		}
	}
	else{//逆时针
	 int temp=2*r;
		for(int i=x-r;i<=2*r+x-r;i++)
		{
			for(int j=2*r+x-r;j>=y-r;j--){
				jz2[2*r+x-r-temp][i]=jz1[i][j];
				temp--;
			}
			temp=2*r;
		}
	}
}
int main(){
	cin>>n>>m;
	//初始化
	int start=1;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			jz1[i][j]=start;
			jz2[i][j]=start;
			start++;
		}
	} 
	for(int i=1;i<=m;i++){
		cin>>x>>y>>r>>z;
		cz();
		for(int j=1;j<=n;j++)
			for(int k=1;k<=n;k++)
			jz1[j][k]=jz2[j][k];
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cout<<jz2[i][j]<<' ';
		}
		cout<<endl;
	}
	return 0;
}
2021/4/19 16:47
加载中...