zoukankan      html  css  js  c++  java
  • POJ 2965

    • 一个开关按偶数次等于没有改变状态,只有奇数次才会改变状态

    如果把一个关闭的开关及其所在列和所在行的开关全部按一遍,因为是(4 imes 4) 的网格,每个开关在行或者列就会被影响偶数次,等于没有改变他的状态,只有当前的开关会被改变状态,因为当前的开关被周围影响了(6) 次,自己再按一次,正好改变了状态。

    我们对每一个关闭的开关都执行一次这种操作,最后图中剩余的(1) 就是不可避免的操作次数(没有被这个过程抵消掉的操作次数)

    #include <iostream>
    #include <algorithm>
    #include <cstring>
    #include <vector>
    using namespace std;
    const int N = 6;
    int g[N][N];
    int main() {
        char ch;
        int ans = 0;
        for(int i = 0;i < 4; ++i) {
            for(int j = 0;j < 4; ++j) {
                cin >> ch;
                if(ch == '+') {
                    g[i][j] ^= 1;
                    for(int k = 0;k < 4; ++k) {
                        g[i][k] ^= 1;
                        g[k][j] ^= 1;
                    }
                }
            }
        }
        for(int i = 0;i < 4; ++i) {
            for(int j = 0;j < 4; ++j) {
                if(g[i][j]) ans ++;
            }
        }
        cout << ans << endl;
        for(int i = 0;i < 4; ++i) {
            for(int j = 0;j < 4; ++j) {
                if(g[i][j]) cout << i + 1 <<' ' << j + 1 << endl;
            }
        }
        return 0;
    }
    

    参考

    fzl

  • 相关阅读:
    centos7开启关闭防火墙
    虚拟机vmnet1和vmnet8找不到,注册表没有删除干净,见图
    dhcp和static的区别
    SQL手册
    canal架构原理
    SQL优化(待完善)
    数仓简介
    java逆变与协变(待完善)
    mysqljoin的原理和优化
    深入理解java虚拟机阅读笔记
  • 原文地址:https://www.cnblogs.com/lukelmouse/p/13338403.html
Copyright © 2011-2022 走看看