可持久化 01 trie

根可持久化线段树差不多,这里贴个板子 >w<

void insert(int &p,int q,int x,int i,int id) {
	p=++tot, val[p]=id;
	if(i==-1) return;
	tr[p][0]=tr[q][0], tr[p][1]=tr[q][1];
	int d=x>>i&1;
	insert(tr[p][d],tr[q][d],x,i-1,id);
}
int ask(int x,int p,int l) {
	int res=0;
	dn(i,30,0) {
		int d=(x>>i&1)^1;
		if(tr[p][d]&&val[tr[p][d]]>=l) res|=(1<<i), p=tr[p][d];
		else p=tr[p][d^1];
	}
	return res;
}
posted @   Hypoxia571  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· 深度对比:PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
点击右上角即可分享
微信分享提示