您的位置:首页 > 其它

CodeForces 548B Mike and Fun

2016-07-12 08:22 375 查看
题目链接:http://codeforces.com/problemset/problem/548/B

题目大意:输入一个矩阵,有0,1构成,输入坐标,如果是0变成1,如果是1变为0,输出一个最大值,以行为单位连续1的个数的最大值.

开始读错了题目,以为输出1最多的一行有几个1,,


代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m,q,c,d,k;
scanf("%d%d%d",&n,&m,&q);

int a[n+2][m+2];
int sum1[n+2];

memset(a,0,sizeof(a));
memset(sum1,0,sizeof(sum1));

for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
scanf("%d",&a[i][j]);
int sum;
for(int k=0; k<q; k++)
{
int maxn=0;
scanf("%d%d",&c,&d);
if(a[c][d]==0)
a[c][d]=1;
else
a[c][d]=0;
for(int i=1; i<=n; i++)
{
int maxn=0,sum=0;
for(int j=1; j<=m; j++)
{
if(a[i][j]==1)
sum+=1;
else
sum=0;
maxn=max(sum,maxn);
}
sum1[i]=maxn;
}

for(int j=1; j<=n; j++)
maxn=max(sum1[j],maxn);
printf("%d\n",maxn);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: