BZOJ - 3687

説明
:暁大の集合論を勉強し始めた、彼はセットの数の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;
}
公開された486元の記事 ウォンの賞賛241 ・は 30000 +を見て

おすすめ

転載: blog.csdn.net/weixin_43826249/article/details/104104975