説明
:暁大の集合論を勉強し始めた、彼はセットの数の4つの質問提起
1。そして、XOR算術和のサブセット。
2。そして、XORサブセットとXOR。
3。算術演算のサブセット。
4。そして、演算XORのサブセット。
これまでのところ、暁大は、彼が置くことを決めた、まだ解決された最初の3つの質問、最後に残った問題を解決した
達成することができ、次のトレーニングチームのメンバーにこの質問を。
トップ
入力
最初の列、整数n。
二行目、N 01、A2を表す正の整数.... 。
上部
出力
行は、整数を含み、排他的論理和との全てのサブセットを表します。
トップ
サンプルに入力
2
。1. 3
トップ
サンプル出力
。6
我々は、各プログラムの数を計算することができますし、我々は作ることができます。
第二に、私たちは本当に、特定の番号を気にしないためだけでも、排他的または効果なし、パリティを気に考えることはできません。
だから私たちは、それぞれのパリティを求めます。直接DPの複雑さが高すぎる、我々は、使用ビットセットを最適化することができます。
各転送の全体集合、S = S ^(1 << X)。
ACコード:
#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
//#define int long long
using namespace std;
const int N=2e5+10;
int n,res; bitset<N> bit;
signed main(){
cin>>n; bit[0]=1;
for(int i=1,x;i<=n;i++){
cin>>x; bit^=(bit<<x);
}
for(int i=0;i<N;i++) if(bit[i]) res^=i;
cout<<res;
return 0;
}