TLE die马:
#include<bits/stdc++.h>
using namespace std;
long long n,m,q,x,y;
bool a[505][505];
int main()
{
cin>>n>>m>>q;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
while(q--)
{
cin>>x>>y;
a[x][y]=!a[x][y];
long long len=0,ma=0; //here!
for(int i=1;i<=n;i++,len=0)
for(int j=1;j<=m;j++)
{
if(a[i][j])len++;
else len=0;
ma=max(ma,len);
}
cout<<ma<<endl;
}
return 0;
}
AC 代码:
#include<bits/stdc++.h>
using namespace std;
long long n,m,q,x,y;
bool a[505][505];
int main()
{
cin>>n>>m>>q;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
while(q--)
{
cin>>x>>y;
a[x][y]=!a[x][y];
int len=0,ma=0; //here!
for(int i=1;i<=n;i++,len=0)
for(int j=1;j<=m;j++)
{
if(a[i][j])len++;
else len=0;
ma=max(ma,len);
}
cout<<ma<<endl;
}
return 0;
}
发现没?两份代码只差了 15 行的一个int。
看来不能什么时候都一昧地定义long long啊