为什么本地能过,交上去CE
查看原帖
为什么本地能过,交上去CE
1132005
Contingency_Core楼主2024/8/10 18:24
struct zds
{
	int a[N*32][2],b[N*32];
	int all=1;
	inline void add(int x)
	{
		int now=0;
		for(int i=30;i>=0;i--)
		{
			if(a[now][(x>>i)&1])
				now=a[now][(x>>i)&1];
			else
				now=a[now][(x>>i)&1]=all++;
			b[now]++;
		}
	}
	inline int ask(int x)
	{
		int ans=0,now=0;
		int i=30;
		for(;i>=0;i--)
		{
			if(a[now][0])
				now=a[now][0];
			else
				return 0;
			if((x>>i)&1)
				break;
		}
      i--;
		for(;i>=0;i--)
		{
			b[now]++;
			if((x>>i)&1)
				ans+=b[a[now][1]];
			if(a[now][0])
				now=a[now][0];
			else
				return ans;
		}
		ans+=b[now];
		return ans;
	}
	void clear()
	{
		memset(b,0,all*4);
	}
} t1={};

为什么把字典树写结构体就CE了(本地能过) 写在外面就AC了。

2024/8/10 18:24
加载中...