(悬关)abc236d样例返回3221225635,求调
  • 板块学术版
  • 楼主qwertim
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/4/2 15:46
  • 上次更新2023/10/23 19:38:14
查看原帖
(悬关)abc236d样例返回3221225635,求调
780539
qwertim楼主2023/4/2 15:46
#include<bits/stdc++.h>
#define fo(i,l,r) for(int i=l;i<=r;i++)
#define pb push_back
#define pp pop_back
#define mr make_pair
using namespace std;
int n,a[20][20],ans=-1;
map<int,bool>mp;
vector<pair<int,int> >v;
void dfs(int peo){
	if(peo<n){
		int pos=1,tmp=0,minx,kkk;
		for(map<int,bool>::iterator it=mp.begin();it!=mp.end();){
			if(tmp){
				kkk=it->first;
				v.pb(mr(minx,kkk));
				mp.erase(mp.begin()),mp.erase(it++);
				dfs(peo+2);
				mp[minx]=mp[kkk]=1;
				v.pp(),v.pp();
			}
			else minx=it->first;
			tmp++;
		}
	}
	else{
		int tmp=a[v[0].first][v[0].second];
		fo(i,1,v.size()-1)tmp^=a[v[i].first][v[i].second];
		ans=max(ans,tmp);
	}
}
int main(){
	cin>>n,n*=2;
	fo(i,1,n-1){
		mp[i]=1;
		fo(j,i+1,n)cin>>a[i][j];
	}
	mp[n]=1;
	dfs(0);
	cout<<ans;
	return 0;
}
2023/4/2 15:46
加载中...