4WA+29RE求调
查看原帖
4WA+29RE求调
1201348
int_inf楼主2025/2/1 18:20

个人觉得没问题 但是数据大了就WA了qwq

#include<iostream>
using namespace std;
bool st[2005][2005]={false};
int n,m,x,y,dnx[]={-2,-1,1,2,2,1,-1,-2},dny[]={1,2,2,1,-1,-2,-2,-1},ans;
char c;
inline void fn()
{
	for(int i=0;i<8;i++)
	{
		int tx=x+dnx[i],ty=y+dny[i];
		if(tx>=1&&tx<=n&&ty>=1&&ty<=n) st[tx][ty]=true;
	}
	return;
}
inline void fq()
{
	for(int i=1;i<=n;i++) st[i][y]=st[x][i]=true;
	for(int i=1;i<n;i++)
	{
		if(i+x<=n&&i+y<=n) st[x+i][y+i]=true;
		if(x-i>=1&&i+y<=n) st[x-i][y+i]=true;
		if(x-i>=1&&y-i>=1) st[x+i][y-i]=true;
		if(i+x<=n&&y-i>=1) st[x-i][y-i]=true;
		
	}
}
inline void fr()
{
	for(int i=1;i<=n;i++) st[i][y]=st[x][i]=true;
	return;
}
int main()
{
	cin>>n>>m;
	while(m--)
	{
		cin>>c>>x>>y;
		st[x][y]=true;
		if(c=='N') fn();
		else if(c=='R') fr();
		else fq();
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(st[i][j]) ans++;
		}
	}
	cout<<ans<<endl;
	return 0;
}
2025/2/1 18:20
加载中...