ABC DTLE*5求优化
  • 板块学术版
  • 楼主xzy_AK_IOI
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/25 21:44
  • 上次更新2025/1/26 11:29:10
查看原帖
ABC DTLE*5求优化
1183074
xzy_AK_IOI楼主2025/1/25 21:44
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define F(i,k,n) for (int i=k;i<=n;i++)
#define db long double
const int N=13;
int pre[1<<N];
unordered_set<int>dp[1<<N];
int a[N];
int n;
unordered_set<int>::iterator it;
signed main(){
	cin>>n;
	F(i,0,n-1) cin>>a[i];
	F(s,0,(1<<n)-1) F(i,0,n-1) if ((s>>i)&1) pre[s]+=a[i];
	dp[(1<<n)-1].insert(0);
	for (int s=(1<<n)-1;s>=0;s--){
		for (int j=s;j>=0;j=(j-1)&s){
			for (it=dp[s].begin();it!=dp[s].end();it++){
				dp[s-j].insert((*it)^pre[j]);
			}
			if (!j) break;
		}
	}
	cout<<dp[0].size();
	return 0;
}
2025/1/25 21:44
加载中...