首页 > 其他分享 >字典树模板+初始化模板

字典树模板+初始化模板

时间:2022-11-03 20:01:11浏览次数:46  
标签:初始化 idx int son ans 模板 字典

https://codeforces.com/contest/1658/problem/D2

int l, r;
int son[M][2], idx;
int a[N];

void init() {//初始化**
    idx = 0;
    son[0][0] = son[0][1] = 0;
}

void insert(int x) {
    int p = 0;
    for (int i = 30; ~i; i --) {
        int &v = son[p][x >> i & 1];
        if (!v) {
            son[idx + 1][0] = son[idx + 1][1] = 0;//初始化*****
            v = ++ idx;
        }
        p = v;
    }
}

int findmax(int x) {
    int p = 0, ans = 0;
    for (int i = 30; ~i; i --) {
        int v = x >> i & 1;
        if (son[p][!v]) {
            ans += 1 << i;
            p = son[p][!v];
        }
        else p = son[p][v];
    }
    return ans;
}

int findmin(int x) {
    int p = 0, ans = 0;
    for (int i = 30; ~i; i --) {
        int v = x >> i & 1;
        if (son[p][v]) p = son[p][v];
        else {
            ans += 1 << i;
            p = son[p][!v];
        }
    }
    return ans;
}

void solve() {
    cin >> l >> r;

    init();
    for (int i = l; i <= r; i ++) cin >> a[i], insert(a[i]);

    for (int i = l; i <= r; i ++) {
        int x = a[i] ^ l;

        if (findmin(x) == l && findmax(x) == r) {
            cout << x << endl;
            return;
        }
    }
}

 

标签:初始化,idx,int,son,ans,模板,字典
From: https://www.cnblogs.com/Leocsse/p/16855662.html

相关文章

  • 使用非类型的模板参数和传普通参数的区别?
     如上所示、想完成加法操作有两种写法一种是用一个模板、一种是用两个参数虽然功能上差不多、但其中的区别还是有的:函数调用时要把压栈而模板里的东西只会......
  • 模板、特化模板和普通函数混用时的的匹配顺序
      有普通函数、总是会先调普通的函数、如上图、鼠标停在foo(3.0)上时会有一个对于普通函数的高亮如果没普通函数、而是有特化、那么会调用特化:   总结:编译器......
  • git config初始化用户 & 配置ssh公钥、私钥
    一、本地系统初始化用户信息查看本地现有用户信息gitconfig--list如果没有配置,需要初始化一个gitconfig--globaluser.nameliujinyugitconfig--globaluser......
  • 学习Pinia(安装,引入注册Vue3,初始化仓库Store,State值获取修改,解构store,actions,getters,AP
    全局状态管理工具Pinia.js有如下特点:完整的ts的支持;足够轻量,压缩后的体积只有1kb左右;去除mutations,只有state,getters,actions;actions支持同步和异步;代码扁平化没有......
  • 模板方法模式
    数据库连接对数据库的操作一般包括连接、打开、使用、关闭等步骤,在数据库操作模板类中我们定义了connDB()、openDB()、useDB()、closeDB()四个方法分别对应这四个步骤。对......
  • 字典数据怎么配
      添加字典数据  前端  实现方式       ......
  • 【CEGUI】CEGUI入门篇之初始化(一)[通俗易懂]
       【CEGUI】CEGUI入门篇之初始化(一)[通俗易懂]转到我的清单专栏首页全栈程序员必看【CEGUI】CEGUI入门篇之初始化(一)[通俗易懂]3【CEGUI】CEGUI......
  • CSS边框模板
    彩色渐变<divclass="gradient-border"id="box"/>#box{width:400px;height:200px;}.gradient-border{--borderWidth:3px;background:#1D1F20;......
  • 0004.Django Template之模板标签
    网页强制刷新:ctrl+F5常用标签模板标签作用,可以在模板中进行各种逻辑操作,比如,循环、判断等1.语法{%loadstatic%}    #加载第三方标签{%tag%}[{%endtag%......
  • 深入标签模板字面量
    模板字面量是ES6引入的一个新特性,它的出现扩展了字符串的可用性,使得拼接字符串和变量变得更加方便和全面。但它不仅限于拼接字符串和变量。还可以用于进行特殊函数调用,ES6......