专栏文章

数值最神秘的一集——字典树

个人记录参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minrthnb
此快照首次捕获于
2025/12/02 07:18
3 个月前
此快照最后确认于
2025/12/02 07:18
3 个月前
查看原文

T3

这道题是个很明显的01字典树。又有异或又要求最值的,不是01还是什么
其实一看,一个专注求最大,一个专注得最小。实则就是让最小异或值最大、让最大异或最小值最小。
如果是小蓝先手,为了取得最小的异或值,小乔的到的就一定是最小异或值。对于每个a[i]a[i]找与a[i]a[i]异或得到的最小值,我们对这些最小值求取maxmax,那么第一问就完成了。
在使用字典树的时候,a[i]a[i]是可能找到自己的,那么最小值就一定会变成00了。我们不妨标记一下自己,维护vis[i]=truevis[i]=true表示结点ii被标记,不可使用。另外维护cnt[i]cnt[i]表示每个结点ii被经过的次数,如果cnt[cur]==1cnt[cur]==1,那么就说明结点curcur只被a[i]a[i]自己经过
另外,对于所有字典树的题目,trietrie数组的取值是与输入字符总数决定的。异或的值可能会超出题目限定值(大约两倍左右,异或是不进位的加法),取极值时需要注意。

T4

这道题也是个明显的01字典树。
既然a[i]a[i]kk都不会超过10610^6,那么xx一定会在[0,221][0,2^{21}]之间,所以枚举xx是不会超时的。我们可以将这nn个数全部插入01字典树。当kkxx都确定时,问题就转化为了找合法的a[i]a[i],在字典树上可以按子树统计

评论

0 条评论,欢迎与作者交流。

正在加载评论...