博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【可持久化Trie】模板
阅读量:6361 次
发布时间:2019-06-23

本文共 871 字,大约阅读时间需要 2 分钟。

总算找到个能看懂的了,orz Lavender。

#define INF 2147483647#define N 100001#define MAXBIT 31int root[N],ch[N*(MAXBIT+1)][2],sz[N*(MAXBIT+1)],tot;int query(int L,int R,int W)//询问a[L...R]中W与其的最大异或值{    int ans=0;    L=root[L];R=root[R+1];    for(int i=MAXBIT;i>=1;--i)      {        int Bit=((W>>(i-1)&1)^1);        if(sz[ch[R][Bit]]-sz[ch[L][Bit]]==0)          Bit^=1;        else          ans+=1<<(i-1);        R=ch[R][Bit];        L=ch[L][Bit];      }    return ans;}void add(int now,int W)//先add(1,0),再add(2...n+1,a[1...n]){    int old=root[now-1];    root[now]=++tot;    now=root[now];    for(int i=MAXBIT;i>=1;--i)      {        int Bit=((W>>(i-1))&1);        sz[now]=sz[old]+1;        ch[now][Bit^1]=ch[old][Bit^1];        ch[now][Bit]=++tot;        now=ch[now][Bit];        old=ch[old][Bit];      }    sz[now]=sz[old]+1;}

转载于:https://www.cnblogs.com/autsky-jadek/p/4313770.html

你可能感兴趣的文章
【转】时钟周期,机器周期,指令周期的区别
查看>>
MYSQL 更新时间自己主动同步与创建时间默认值共存问题
查看>>
android 屏幕适配
查看>>
Android Activity的4种启动模式
查看>>
leetcode第一刷_Minimum Depth of Binary Tree
查看>>
pm2-webshell —— 基于浏览器的终端控制台
查看>>
Mysql基准测试
查看>>
Session 撰改演示
查看>>
【转】python3 发邮件实例(包括:文本、html、图片、附件、SSL、群邮件)
查看>>
事务隔离级别(图文详解)
查看>>
canvas系列教程08-canvas各种坑
查看>>
浅析package.json中的devdependencies 和 dependencies
查看>>
又一个 iOS 侧边栏组件: SideMenu
查看>>
vue.js 打包遇到的问题
查看>>
【译】更优秀的GraphQL官方中文文档-客户端如何使用
查看>>
git pull遇到的问题
查看>>
eclipse下maven spring项目环境配置
查看>>
无缝轮播
查看>>
CTS失败项分析(2)android.telephony.cts.VisualVoicemailServiceTest#testFilter_data
查看>>
三分钟,轻松了解Dapp
查看>>