• 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

  • 相关阅读:
    面试总结
    回溯-递归练习题集
    2018年度业余学习总结
    12306余票高效查询--clojure实现
    Mac中wireshark如何抓取HTTPS流量?
    2017年学习总结
    Clojure——学习迷宫生成
    新生帝之2016年的计划,努力去做好!
    EmitMapper
    ASP.NET 修改地址返回图片缩率图
  • 原文地址:https://www.cnblogs.com/lukelmouse/p/13338403.html
Copyright © 2020-2023  润新知