您的位置:首页 > 其它

CodeForces 548B 模拟连续的技巧。

2017-08-19 09:31 302 查看
题目比较水,可是我在比赛时候没有AC,很难过。

AC代码:

注意他统计连续的1的技巧,不需要n^3,n^2即可。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <string>
using namespace std;
const int maxn=5e2+10;
const int inf=0x3f3f3f3f;

bool bears[maxn][maxn];
int ans[maxn];
int main()
{
int n,m,q;
while(scanf("%d%d%d",&n,&m,&q)==3)
{
memset(ans,0,sizeof(ans));
memset(bears,0,sizeof(bears));

for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%d",&bears[i][j]);

for(int i=1;i<=n;i++)
{
int cnt=0;
for(int j=1;j<=m;j++)
{
if(bears[i][j]) cnt++;
else cnt=0;

ans[i]=max(ans[i],cnt);
}
}

for(int i=1;i<=q;i++)
{
int t1,t2;
scanf("%d%d",&t1,&t2);
bears[t1][t2]=!bears[t1][t2];

int cnt=0;
int maxxx=-1;
for(int j=1;j<=m;j++)
{
if(bears[t1][j]) cnt++;
else cnt=0;
maxxx=max(cnt,maxxx);
}
ans[t1]=maxxx;

int maxx=-1;
for(int j=1;j<=n;j++)
if(maxx<ans[j])
maxx=ans[j];

printf("%d\n",maxx);
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: