zoukankan      html  css  js  c++  java
  • bzoj 3517: 翻硬币

    3517: 翻硬币

    Time Limit: 1 Sec  Memory Limit: 128 MB

    Description

    有一个nn列的棋盘,每个格子上都有一个硬币,且n为偶数。每个硬币要么是正面朝上,要么是反面朝上。每次操作你可以选定一个格子(x,y),然后将第x行和第y列的所有硬币都翻面。求将所有硬币都变成同一个面最少需要的操作数。

    Input

    第一行包含一个正整数n
    接下来n行,每行包含一个长度为n的01字符串,表示棋盘上硬币的状态。

    Output

    仅包含一行,为最少需要的操作数。

    Sample Input

    4
    0101
    1000
    0010
    0101

    Sample Output

    2

    HINT

    【样例说明】

    对(2,3)和(3,1)进行操作,最后全变成1。

    【数据规模】

    对于100%的数据,n ≤ 1,000。

     

    Source

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    #define N 1010
    int ans,n;
    bool a[N][N],sum1[N],sum2[N];
    char s[N];
    int main()
    {
        scanf("%d
    ",&n);
        for(int i=0;i<n;i++)
        {
            gets(s);
            for(int j=0;j<n;j++)
            {
                a[i][j]=s[j]-'0';
                sum1[i]^=a[i][j];
                sum2[j]^=a[i][j];
            }
        }
        for(int i=0;i<n;i++) for(int j=0;j<n;j++) ans+=sum1[i]^sum2[j]^a[i][j];
        printf("%d
    ",min(ans,n*n-ans));
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    aa
    ECS上搭建Docker(CentOS7)
    mysql时间戳转日期
    rsync用法
    docker安装mysql8
    使用Docker安装mysql,挂载外部配置和数据
    my.cnf
    Centos7通过yum安装jdk8
    maven添加本地包命令mvn install:install-file
    Mysql——查看数据库,表占用磁盘大小
  • 原文地址:https://www.cnblogs.com/lkhll/p/6136359.html
Copyright © 2011-2022 走看看