以下の内容はhttps://kenkoooo.hatenablog.com/entry/2020/06/08/001016より取得しました。


AGC045 A - Xor Battle

atcoder.jp

「ある正の整数の集合 A から好きなものを選んで XOR をとり、Kを作ることができるか?」という問題を解く。この問題は集合から作りうる数を全て列挙するのではなく、集合の基底をとり、そこから K が作れるかを考えれば良い。

基底は以下のようにして作れる。

let mut base = vec![];
for i in (0..n) {
    let mut a = a[i];
    for &b in base.iter() {
        if a ^ b < a {
            a ^= b;
        }
    }
    if a != 0 {
        base.push(a);
    }
}

sugoi




以上の内容はhttps://kenkoooo.hatenablog.com/entry/2020/06/08/001016より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14