蒟蒻最后一个点TLE 求助
查看原帖
蒟蒻最后一个点TLE 求助
220227
我就是天帝楼主2020/7/28 16:36

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int N=586,M=586;
int n,m,f[N][M],TURN[N][M];
void Turn(int x,int y,int r,int z)
{
	if(r==0)
		return ;
	memset(TURN,0,sizeof(TURN));
	if(z==1)//逆时针旋转
	{
		for(int i=x-r;i<=x+r;i++)
			for(int j=y-r;j<=y+r;j++)
				TURN[i][j]=f[i][j];
		int h=x-r,l=y+r;
		for(int i=x-r;i<=x+r;i++)
		{
			for(int j=y-r;j<=y+r;j++)
				f[i][j]=TURN[h++][l];
			h=x-r,l-=1;
		}
	}
	else if(z==0)//顺时针旋转 
	{
		for(int i=x-r;i<=x+r;i++)
			for(int j=y-r;j<=y+r;j++)
				TURN[i][j]=f[i][j];
		int h=x+r,l=y-r;
		for(int i=x-r;i<=x+r;i++)
		{
			for(int j=y-r;j<=y+r;j++)
				f[i][j]=TURN[h--][l];
			h=x+r,l+=1;
		}
	}
	return ;
}
int main()
{
	scanf("%d %d",&n,&m);
	for(int i=0;i<n;i++)
		for(int j=1;j<=n;j++)
			f[i+1][j]=i*n+j;//先初始	化 
	for(int i=1,x,y,r,z;i<=m;i++)
	{
		scanf("%d %d %d %d",&x,&y,&r,&z);
		Turn(x,y,r,z);
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
			printf("%d ",f[i][j]);
		printf("\n");
	}
	return 0;
}

最后一个点T掉了

除了O2还有其他的方法嘛

2020/7/28 16:36
加载中...