1804:错误探测

原题

这道题虽然一次ac了,而且写的很顺,没调就过了,所以记录一下想法撒

复制代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int s[101][101] = {};
    int x[101],y[101];
    int n,flag = 0,x1,sumx = 0,y1,sumy = 0;
    memset(x,0,sizeof(x));
    memset(y,0,sizeof(y));
    scanf("%d",&n);
    for(int i = 1;i <= n;++ i){
        for(int j = 1;j <= n;++ j){
            scanf("%d",&s[i][j]);
        }
    }
    for(int i = 1;i <= n;++ i){
        for(int j = 1;j <= n;++ j){
            x[i] += s[i][j];
            y[j] += s[i][j];
        }
    }
    for(int i = 1;i <= n;++ i){
        if(x[i] % 2 != 0){
            flag = 1;
            ++ sumx;
            if(sumx == 1){
                x1 = i;
            }
        }
    }
    for(int i = 1;i <= n;++ i){
        if(y[i] % 2 != 0){
            flag = 1;
            ++ sumy;
            if(sumy == 1){
                y1 = i;
            }
        }
    }
    if(flag == 0){
        printf("OK");
    }
    else if(sumx == 1 && sumy == 1){
        printf("%d %d",x1,y1);
    }
    else{
        printf("Corrupt");
    }
    return 0;
}
复制代码

这里拿了两个数组,一个x一个y来储存矩阵每一行每一列的奇偶情况
对于题意要想明白一件事情,所谓能只改一个元素就能正确就是此元素所在的行和列的1个数都为奇数;而只有行和列的其中之一为奇数是不行的,改元素势必会影响到其他的偶数。

posted @   Qwehhh  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示