• 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;
    }
    
  • 相关阅读:
    NOI2021 题解
    CF605E Intergalaxy Trips
    P4762 [CERC2014]Virus synthesis
    特征向量与特征值
    uoj
    NOI 2021
    [NOI2011] NOI 嘉年华 【DP】
    CF1264D(组合数)
    绝对不咕
    题解 SP11985 【GOT
  • 原文地址:https://www.cnblogs.com/dwtfukgv/p/5754666.html
Copyright © 2020-2023  润新知