• 2024-09-14P10471 最大异或对 The XOR Largest Pair(01trie)
    #include<bits/stdc++.h>usingnamespacestd;#definexfirst#defineysecondtypedefpair<int,int>PII;typedeflonglongll;typedefunsignedlonglongull;typedefunsignedintuint;typedefvector<string>VS;typedefvector<int>
  • 2024-07-21CF1720D2
    感觉静下来能想出来?整个思路没有太容易走偏的地方,就最后一段有点难首先看到异或想到01trie和拆位,然后看到要求最长子序列,想到dp。所以目前的想法就是01trie里存dp,然后按照某种方式找到最大的,来更新\(dp_{i}\)。不会了!\(a_{i}\oplusj>a_{j}\oplusi\)怎么搞啊。我们拆位,发现如
  • 2024-07-01CF950Div3 G. Yasya and the Mysterious Tree(01Trie)
    Problem题目地址Solution设\(s[u]\)是根到\(u\)路径上的异或和,树上任意两点\(u,v\)的路径异或和可表示为\(s[u]\opluss[v]\)。考虑查询操作?vx即求\(\max\{s[v]\opluss[u]\oplusx|\\1\leu\len,u\not=v\}\),若把\(s[v]\oplusx\)看作一个整体
  • 2024-06-23C140 线段树分治+01Trie P4585 [FJOI2015] 火星商店问题
    视频链接:   C09【模板】可持久化字典树(Trie)-董晓-博客园(cnblogs.com)P4585[FJOI2015]火星商店问题-洛谷|计算机科学教育新生态(luogu.com.cn)//线段树分治O(nlognlogn)#include<iostream>#include<cstring>#include<algorithm>#include<vect
  • 2024-05-1801trie专题
    01trie特训2题意:给定一个含有n个元素的数组Ai,你可以选择两个不相交的子段。求出这两个子段内的数的异或和的差值的最大值。Sol:考虑枚举两段的分界点,对于较短的两段来说可能会有多个分界点但这样我们求的是答案的超集,一定会包括答案的。对于一个分界点,我们先考虑如果要求以左
  • 2024-03-0101trie
    01Trie字符集为\(\{0,1\}\)的字典树Trie一般用于解决异或相关问题基本问题给定数集\(S\)和数\(x\),求\(\max\{x\oplusS_i\}\)。从高到低将集合\(S\)中的数插入Trie(注意高位要补齐)。从根节点开始,尽量选和\(x\)当前位不同的,计算答案。容易证明这一定是最大值
  • 2024-02-1601trie
    01trie定义01-trie是字符集为0,1的trie,可以维护异或极值,维护异或和实现主体仍然是trie,维持\(t\)数组记录儿子不变。需要因为异或的性质,所以只需要维护加入0/1边的奇偶性即可,所以添加\(w\)数组记录父节点到该节点的边数。此外因为要统计异或和,所以要在树上统计,用\(xorv
  • 2023-12-30【省选联考2020】树 题解
    省选题解第一发~【省选联考2020】树我和这道题还挺有缘分的。有一次看大佬的省选游记(不知道是哪一年),然后提到有一道是01trie整体加一,当时我就印象深刻,然后在oiwiki上看了一下,心想这整体加一也只能从低位到高位维护01trie啊,又不能查询最大值,有什么卵用(划掉)。这是两周前的事
  • 2023-10-17【标签】字符串
    讲解题目序号题目算法标签题解难度1CF1213D01triesolution\(C^+\)
  • 2023-09-11CF1864E Guess Game
    原题翻译非常好的一道题,不过前半部分的逻辑推理比较难理解,这很博弈由于或运算是有\(1\)就为\(1\),因此我们对于一对数\((a,b)\),我们不需要看\(a|b\)中为\(0\)的那些位,因此我们只需要考虑\(a|b\)全\(1\)的情况即可我们考虑一下如果\(Alice\)说"我不知道"说明什么?说明在\(a\)和\(
  • 2023-07-08[模板]01trie,维护异或最大值
    //查询异或最大值,每次插入和查询时间都是log(C)template<classT>classtrie01{vector<vector<T>>tree;public:trie01():tree(1,vector<T>(2,0)){}//插入待检查的数字voidinsert(Tx){intp=0;for(inti=sizeof
  • 2023-05-30P9376 题解
    首先考虑怎么暴力。考虑把每个数进行\(B\)进制分解,然后我们惊奇的发现这两个操作就是把最低位去掉和往最低位后面插入一个数。然后我们顺藤摸瓜,把每个数的分解扔到Trie树上,我们发现我们要找到一个节点,使得所有单词节点到其的距离之和最短,答案就是这个最短距离。这里直接考
  • 2023-03-1401trie树相关
    01-trie是指字符集为\(\{0,1\}\)的trie。01-trie可以用来维护一些数字的异或和,支持修改(删除+重新插入),和全局加一(即:让其所维护所有数值递增\(1\),本质上是一种特殊的
  • 2022-11-21位运算
    给定\(a_0...,a_{2^\omega-1}\),对于\(k\in[0,w)\)求第\(k\)位为\(1\)的数的\(a\)的和。首先可以\(\mathcalO(2^\omega\omega)\)计算,考虑优化将所有数插
  • 2022-11-20字符串练习2 最长抑或路径(01trie树)
    题目链接在这里:​​P4551最长异或路径-洛谷|计算机科学教育新生态(luogu.com.cn)​​是一道比较经典的问题,对于异或问题经常会使用01trie树来解决。当然01trie树只是
  • 2022-11-18字符串练习2 最长抑或路径(01trie树)
    题目链接在这里:P4551最长异或路径-洛谷|计算机科学教育新生态(luogu.com.cn)是一道比较经典的问题,对于异或问题经常会使用01trie树来解决。当然01trie树只是用来统
  • 2022-10-31【XSY4184】谁(who)(01Trie,结论)
    考虑哪些点对无论颜色怎么变都是没有用的(不可能成为答案)。先把01Trie建出来,对于每一个点\(lca\),找到异或值最小的两个点\(u,v\),使得\(u\)在\(lca\)左子树内,\(v\)
  • 2022-10-28【CF888G】Xor-MST(01Trie,最小生成树)
    看到异或最值要么是线性基要么是01Trie。线性基显然可以排除。那么先把所有的\(a_i\)插入01Trie内。然后发现对于任意两个数\(a_i\)和\(a_j\):你发现它们在\(
  • 2022-10-03yukari1735 的板子们
    可持久化01Trie点击查看代码structPersistent_01Trie{ intR[N],T[N][2],C; voidInsert(intp,intq,llx){ for(inti=lgN;i>=0;i
  • 2022-09-22异或笔记
    异或异或基本性质交换律:a^b=b^a结合律:a^(b^c)=(a^b)^c自反律:a^a=0异或题型总结01Trie概述:使用01Trie的题目,大多涉及某个数和某个数异或后满足
  • 2022-08-21CF815 D2 Xor-Subsequence (hard version)(01trie)
    传送门sb题面误导了我半天。按位考虑,对于\(a[i]\)和\(i\)的一位考虑什么样的\(a[j]\)和\(j\)可以转移过来,发现这一位有一种一定可以一种一定不行,还有两种不确定。考虑