全RE求助
  • 板块学术版
  • 楼主OMG_NOIP
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/5/24 14:10
  • 上次更新2024/5/24 18:14:57
查看原帖
全RE求助
938212
OMG_NOIP楼主2024/5/24 14:10

题目:U109897 [HDU5536]Chip Factory

不求AC,只想知道RE的原因,求大佬帮忙。

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,a[1005],tri[20000005][2],pot,fas[20000005],cnt[20000005],pos[20000005],vist[20000005];
inline void insert(ll k){
	ll p=0;
	for(ll i=32;i>=0;i--){
		ll to=k>>i&1;
		if(!tri[p][to])tri[p][to]=++pot;
		fas[tri[p][to]]=p;
		p=tri[p][to];
	}
	cnt[p]++;pos[k]=p;
}
inline ll query(ll k){
	ll p=0,res=0;
	for(ll i=32;i>=0;i--){
		ll to=k>>i&1;
		if(tri[p][to^1]&&!vist[tri[p][to^1]]){
			res+=1ll<<i;
			p=tri[p][to^1];
		}
		else p=tri[p][to];
	}
	return res;
}
inline void modify(ll p,ll k){
//	cout<<"p = "<<p<<endl;
	vist[p]+=k;
	ll asd=0;
	if(tri[fas[p]][0])asd++;
	if(tri[fas[p]][1])asd++;
	if(asd==2||cnt[fas[p]])return;
	modify(fas[p],k);
}
signed main(){
	ios::sync_with_stdio(false);
	cin>>n;
	for(ll i=1;i<=n;i++)cin>>a[i];
	for(ll i=1;i<n;i++)
		for(ll j=i+1;j<=n;j++){
			insert(a[i]+a[j]);
//			cout<<"insert : "<<a[i]+a[j]<<endl; 
		}
	ll ans=0;
	for(ll i=1;i<=n;i++){
//		cout<<"i = "<<i<<"   -------------------------"<<endl;
		for(ll j=1;j<=n;j++){
			if(i==j)continue;
			if(cnt[a[i]+a[j]]<=1){
//				cout<<"modify+ : "<<a[i]+a[j]<<endl;
				modify(pos[a[i]+a[j]],1);
			}
		}
		ans=max(ans,query(a[i]));
		for(ll j=1;j<=n;j++){
			if(i==j)continue;
			if(cnt[a[i]+a[j]]<=1){
//				cout<<"modify- : "<<a[i]+a[j]<<endl;
				modify(pos[a[i]+a[j]],-1);
			}
		}
	}
	cout<<ans;
	return 0;
}
2024/5/24 14:10
加载中...