codeforces1151B Dima(异或的性质)

简介: codeforces1151B题解(异或的性质)

输入n行,m列。从每一行取一个值,使他们的异或和>0,输出TAK和n个满足条件的每一行的列数,如果不能构成,输出NIE。

/*
 * codeforces1151B Dima and a Bad XOR 
 * Created by hao on 2019/4/19.
 * 输入n行,m列。从每一行取一个值,使他们的异或和>0。
 * 输出TAK和n个满足条件的每一行的列数,如果不能构成,输出NIE。
 * 异或的一些性质
 * 0^0=0,0^1=1,1^0=1,1^1=0
 * 相同取0,相异取1
 * 输入A取0,则输出p=输入B
 * 输入A取1,则输出p=输入B的反
 */
#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
using namespace std;
#define ll long long

int main() {
    cin.tie(0);
    ios_base::sync_with_stdio(false);
    int h, w;
    cin >> h >> w;
    int a[505][505];
    int cur = 0;

    //读入数据,cur对每一行第一个异或(^)
    for (int i = 0; i < h; ++i) {
        for (int j = 0; j < w; ++j) {
            cin >> a[i][j];
        }
        cur ^= a[i][0];
    }
    //定义初始值,去判断是否有符合条件的存在。
    int px = -1, py = -1;
    for (int i = 0; i < h && px == -1; ++i) {
        for (int j = 0; j < w; ++j) {
            //让当前值和每一行的第一个进行异或,如果满足和>0即可跳出,记录行数和列数,方便输出
            int nxt = cur ^ a[i][0] ^ a[i][j];
            if (nxt > 0) {
                px = i, py = j+1;
                break;
            }
        }
    }
    //根据前面的判断分情况输出
    if (px >= 0 && py >= 0) {
        cout << "TAK" << endl;
        for (int i = 0; i < h; ++i) {
            if (i) cout << ' ';
            cout << (i == px ? py : 1);
        }
        cout << endl;
    }
    else {
        cout << "NIE" << endl;
    }
    return 0;
}
目录
相关文章
|
4月前
|
人工智能 BI vr&ar
宇宙人浇花(异或前缀和+trie+思维,最大异或对问题)
宇宙人浇花(异或前缀和+trie+思维,最大异或对问题)
46 0
|
10月前
|
机器学习/深度学习 算法
【算法基础】筛质数
【算法基础】筛质数
46 0
|
11月前
|
算法
初阶OI素数算法——埃拉托尼斯筛
时间复杂度比较优秀且易于理解的素数筛选法
64 0
|
4月前
|
算法 测试技术 C++
【数学归纳法】【位运算】【异或】3068最大节点价值之和
【数学归纳法】【位运算】【异或】3068最大节点价值之和
|
4月前
|
算法 测试技术 C++
【数学归纳法 组合数学】容斥原理
【数学归纳法 组合数学】容斥原理
|
4月前
|
C++
【PTA】​ L1-080 乘法口诀数列​(C++)
【PTA】​ L1-080 乘法口诀数列​(C++)
80 0
【PTA】​ L1-080 乘法口诀数列​(C++)
|
算法 C语言 C++
【数论】试除法判断质数,分解质因数,筛质数
将定义进行模拟,若整除了除1与其自身的另外的数,则为质数
107 0
|
算法 C语言 C++
【数论】最大公约数、约数的个数与约数之和定理
先来科普下什么是约数:当a能被b整除,我们就说b为a的约数,b的倍数为a
98 0
|
机器学习/深度学习 算法 C++
算法基础系列第四章——数论之质数与约数(1)
算法基础系列第四章——数论之质数与约数(1)
165 0
算法基础系列第四章——数论之质数与约数(1)
|
算法 C++
算法基础系列第四章——数论之质数与约数(2)
算法基础系列第四章——数论之质数与约数(2)
113 0
算法基础系列第四章——数论之质数与约数(2)