問題を解決P2447 [[SDOI2010]地球外ヤスデ]

ソリューション[SDOI2010]地球外ヤスデ

タイトル効果:アモルファスとして\(\和a_ix_iの\当量のM (MOD \; 2)\) 式、すべて解く\を(X \; MOD \; 2 \) 値

ガウスの消去


分析:金型では\(2 \)実際にXORの意味での操作なので、この質問は、方程式の問題排他ボードまたはグループを解決するためのガウス消去法であります

存在方程式の最小数は、前にフェッチの各ピボットライン数から選択この除去処理の最大値を解くことができるに違いが出力されます

#include <iostream>
#include <string>
#include <bitset>
using namespace std;
const int maxn = 1024;
bitset<maxn> val[maxn << 1];
string a,b;
int n,m,ans;
int main(){
    ios::sync_with_stdio(false);
    cin >> n >> m;
    for(int i = 1;i <= m;i++)
        cin >> a >> b,val[i] = bitset<maxn>(a + b);
    for(int i = 1;i <= n;i++){
        int r = i;
        while(r <= m && !val[r][i])r++;
        if(r == m + 1){
            cout << "Cannot Determine\n";
            return 0;
        }
        ans = max(ans,r);
        swap(val[i],val[r]);    
        for(int k = 1;k <= m;k++)
            if(k != i && val[k][i])val[k] ^= val[i];
    }
    cout << ans << '\n';
    for(int i = n;i >= 1;i--)
        cout << (val[i][0] ? "?y7M#" : "Earth") << '\n';
    return 0;
}

おすすめ

転載: www.cnblogs.com/colazcy/p/11714952.html