zoukankan      html  css  js  c++  java
  • CodeForces 548B Mike and Fun (模拟)

    题意:给定一个n*m的矩阵,都是01矩阵,然后每次一个询问,改变一个格的值,然后问你最大有数是多少。

    析:就是按他说的模拟,要预处理,只要把每行的最大值记下来,当改变时,再更新这一行的最大值。

    代码如下:

    #include<bits/stdc++.h>
    
    using namespace std;
    const int maxn = 500 + 5;
    int a[maxn][maxn];
    int num[maxn];
    
    int main(){
        int n, m, q, x, y;
        while(cin >> n >> m >> q){
            for(int i = 0; i < n; ++i)
                for(int j = 0; j < m; ++j)
                    scanf("%d", &a[i][j]);
            int mm = 0;
            int tt ;
            for(int i = 0; i < n; ++i){
                int cnt = 0;
                for(int j = 0; j < m; ++j){
                    if(a[i][j])  ++cnt;
                    else  cnt = 0;
                    num[i] = max(num[i], cnt);
                }
            }
    
            while(q--){
                scanf("%d %d", &x, &y);
                --x, --y;
                a[x][y] = a[x][y] ? 0 : 1;
                int cnt = 0;
                num[x] = 0;
                for(int i = 0; i < m; ++i){
                    if(a[x][i]) ++cnt;
                    else  cnt = 0;
                    num[x] = max(num[x], cnt);
                }
                mm = 0;
                for(int i = 0; i < n; ++i)  mm = max(mm, num[i]);
                printf("%d
    ", mm);
            }
    
        }
        return 0;
    }
    
  • 相关阅读:
    2-Rsync备份-全网备份
    1-Rsync备份-备份概述
    复杂声明学习总结
    EasyExcel的用法
    listvue
    解决Error: Cannot find module 'node-sass'问题
    Webpack
    babel的使用
    nodejs的使用
    vue入门
  • 原文地址:https://www.cnblogs.com/dwtfukgv/p/5754666.html
Copyright © 2011-2022 走看看