A 了,但依然有疑问
查看原帖
A 了,但依然有疑问
601764
kele7楼主2023/11/5 15:36

这是原来的代码(Wrong answer on test 3)

#include<bits/stdc++.h>
using namespace std;
int T,n,m;

int main()
{
	cin>>T;
	while(T--)
	{
		cin>>n>>m;
		char c[505][505];
		if(n%3!=1)
		{
			for(int i=1;i<=n;i++)
			{
				for(int l=1;l<=m;l++)
				{
					cin>>c[i][l];
					if(i%3==2)
					{
						c[i][l]='X';
					}
				}
			}
			for(int i=3;i<=n;i+=3)//--------------------
			{
				if(c[i][2]=='X'||c[i+1][2]=='X')
				{
					c[i][2]=c[i+1][2]='X';
				}
				else
				{
					c[i][1]=c[i+1][1]='X';
				}
			}
		}
		else
		{
			for(int i=1;i<=n;i++)
			{
				for(int l=1;l<=m;l++)
				{
					cin>>c[i][l];
					if(i%3==1)
					{
						c[i][l]='X';
					}
				}
			}
			for(int i=2;i<=n;i+=3)//--------------------
			{
				if(c[i][2]=='X'||c[i+1][2]=='X')
				{
					c[i][2]=c[i+1][2]='X';
				}
				else
				{
					c[i][1]=c[i+1][1]='X';
				}
			}
		}
		for(int i=1;i<=n;i++)
		{
			for(int l=1;l<=m;l++)
			{
				cout<<c[i][l];
			}
			cout<<"\n";
		}
	}
}

改完的代码(Accepted)

#include<bits/stdc++.h>
using namespace std;
int T,n,m;

int main()
{
	cin>>T;
	while(T--)
	{
		cin>>n>>m;
		char c[505][505];
		if(n%3!=1)
		{
			for(int i=1;i<=n;i++)
			{
				for(int l=1;l<=m;l++)
				{
					cin>>c[i][l];
					if(i%3==2)
					{
						c[i][l]='X';
					}
				}
			}
			for(int i=3;i<n;i+=3)//--------------------
			{
				if(c[i][2]=='X'||c[i+1][2]=='X')
				{
					c[i][2]=c[i+1][2]='X';
				}
				else
				{
					c[i][1]=c[i+1][1]='X';
				}
			}
		}
		else
		{
			for(int i=1;i<=n;i++)
			{
				for(int l=1;l<=m;l++)
				{
					cin>>c[i][l];
					if(i%3==1)
					{
						c[i][l]='X';
					}
				}
			}
			for(int i=2;i<n;i+=3)//--------------------
			{
				if(c[i][2]=='X'||c[i+1][2]=='X')
				{
					c[i][2]=c[i+1][2]='X';
				}
				else
				{
					c[i][1]=c[i+1][1]='X';
				}
			}
		}
		for(int i=1;i<=n;i++)
		{
			for(int l=1;l<=m;l++)
			{
				cout<<c[i][l];
			}
			cout<<"\n";
		}
	}
}

注:改的地方已特殊标注

我认为他们是一样的呀,请问为什么第二个可以 AC?

2023/11/5 15:36
加载中...