我也是10分,没太看懂题解,请求大佬debug
查看原帖
我也是10分,没太看懂题解,请求大佬debug
1038838
张一2010楼主2024/4/6 22:47
#include<bits/stdc++.h>
#define itn int
using namespace std;
itn n,m,px,py,pr,pz,ans[502][502],sz[502][502];
void fz(int x,int y,int a){
	itn nox=x-a,noy=y-a;a=2*a+1;
	for(int i=nox;i<=nox+a;i++)for(int j=noy;j<=noy+a;j++) sz[i][j]=ans[i][j];
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)for(int j=1;j<=n;j++) ans[i][j]=(i-1)*n+j;
//	for(int i=1;i<=n;i++){
//		for(int j=1;j<=n;j++) cout<<ans[i][j]<<" ";
//		cout<<"\n";
//	}cout<<"\n\n";
	for(int i=0;i<m;i++){
		cin>>px>>py>>pr>>pz;
		fz(px,py,pr);
//		for(itn j=px-pr;j<=px+pr;j++){
//			for(itn k=py-pr;k<=py+pr;k++) cout<<sz[j][k]<<" ";
//			cout<<"\n";
//		}cout<<"\n";
		if(!pz){
			for(itn j=px-pr;j<=px+pr;j++)for(itn k=py-pr;k<=py+pr;k++) ans[k][px-pr + px+pr - j]=sz[j][k];
		}else{
			for(itn j=px-pr;j<=px+pr;j++)for(itn k=py-pr;k<=py+pr;k++) ans[py-pr + py+pr - k][j]=sz[j][k];
		}
//		for(int i=1;i<=n;i++){
//			for(int j=1;j<=n;j++) cout<<ans[i][j]<<" ";
//			cout<<"\n";
//		}cout<<"\n\n";
	}
//	cout<<"\n\n\n";
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++) cout<<ans[i][j]<<" ";
		cout<<"\n";
	}
	return 0;
}

2024/4/6 22:47
加载中...