这是原来的代码(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?