12.24

发布时间 2023-12-24 12:12:36作者: lxyt-415x

上午

继续看昨天huge给的视频并尝试写最大异或和,wa了半天发现是maxn[0]没有初始化,6
虽然感觉没人看,但是为了凑字数还是贴上代码吧

点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int N=6e5+10,M=N*25;
int n,m,tot,s[N];
int trie[M][2],maxn[M],root[M];
inline void insert(int x,int k,int la,int now)
{
	if(k<0)
	{
		maxn[now]=x;
		return ;
	}
	int v=s[x]>>k&1;
	if(la)
		trie[now][v^1]=trie[la][v^1];
	trie[now][v]=++tot;
	insert(x,k-1,trie[la][v],trie[now][v]);
	maxn[now]=max(maxn[trie[now][0]],maxn[trie[now][1]]);
	return ;
}
inline int query(int x,int k,int now,int l)
{
	if(k<0)
		return s[maxn[now]]^x;
	int v=x>>k&1;
	if(maxn[trie[now][v^1]]>=l)
		return query(x,k-1,trie[now][v^1],l);
	return query(x,k-1,trie[now][v],l);
}
int main()
{
	cin>>n>>m;
	root[0]=++tot;
	maxn[0]=-1;
	insert(0,23,0,root[0]);
	for(int i=1,x;i<=n;i++)
	{
		scanf("%d",&x);
		s[i]=s[i-1]^x;
		root[i]=++tot;
		insert(i,23,root[i-1],root[i]);
	}
	char c[2];
	int x,l,r;
	while(m--)
	{
		scanf("%s",c);
		if(*c=='A')
		{
			scanf("%d",&x);
			n++;
			s[n]=s[n-1]^x;
			root[n]=++tot;
			insert(n,23,root[n-1],root[n]);
		}
		else
		{
			scanf("%d%d%d",&l,&r,&x);
			printf("%d\n",query(s[n]^x,23,root[r-1],l-1));
		}
	}
	return 0;
}

然后就只凑了一行(不对,算上这行就有两行了)

然后一上午就过去了,在校oj上新开了道题,有点思路但是肯定写不完了

然后就看【数据删除】(保护个人隐私,从我做起)在颓【数据删除】,有实力的,看的我都想打⚪了,但是我更不想趋势
零基础的大哥们不知道用什么办法给笔趣阁打开看小说,还有玩模拟抽卡的,还有啥三子棋,太闲了导致的,感觉要颓就颓,不如【数据删除】

顺带一提,JD换头像了,我刚开始以为他是要换博客园的,没想到给luogu的换了,不好评价(不过我本来好像也不该评价

看着luotianyi爆切一吨AC自动机紫题,%%%

。闲话要写不完了,但是谷哥就在机房前面坐着,那我就赌他会去看【数据删除】而不是我

“下午由于学校安排又要去那个教室写文化课,真亏他们想的出来,怎么说都写不完那么多东西吧”
以上是我的想法

然后就有人说“啊老师老师,我要是写完了能不能来机房啊”
我承认给我听傻了,哥们哪的挂介绍一下

好图
image