『Trie 树,K-D 树,线段树』Day1 略解
前言
且视他人之疑目如盏盏鬼火,大胆地去走你的夜路。
先做的前天的 DP 套 DP,可能浪费了一个上午在麻将这个题上,感觉今天的题做不完了。
A
只有我这种小丑会不知道
显然遇到这种,就是把儿子的异或和通过父亲维护出来即可。
唯一的麻烦在于怎么对于一个点维护的异或和全局加
考虑每个点维护他的儿子的二进制串的
故考虑从低到高位建
至于异或和怎么维护,其实本质上就是
其他的感觉就是在加减的时候有一个删除原来的数加入新的数的操作的细节处理,没什么讲头。
第一次知道
B
TZL 说很简单,我信了,然后想了 40 多分钟都没搞明白简单在哪里。
然后他又说随便找规律,然后完全不知道怎么找。
简称太菜了。
我们发现,先建完一颗
发现输入完之后,能选的点会构成若干棵满二叉树。
由于是博弈,考虑从
考虑观察一下我们是如何操作的:
-
删掉根节点,那么这棵树直接没了。
-
删掉一个深度为
的节点,剩下一颗深度为 的满二叉树。 -
删掉一个深度为
的节点,剩下一颗深度为 和一颗 的二叉树。 -
以此类推,删掉一个深度为
的节点,剩下深度为 的二叉树。
简而言之,
然后由于
C
很难,先咕咕咕。
D
随手猜个结论,
打完了,有
摆烂了,只会
考虑一种构造方法,每次一次性的填完一种颜色。
题解中的话很清晰:如果能选出若干两两不交的路径,经过所有的关键点,那么重复进行
问题就在于怎么去选择两两不交的路径。
然后依然不会,我真的只有截图一下题解了:
简而言之,就是每次选择一个时间戳最小的,且是关键点的点
此时复杂度应该是
考虑加速删点和寻找关键点的过程,因为路径通过树链剖分之后会分成
时间复杂度
常数巨大,极限
E
算是对于
首先看到只出现一次,找到这个数上次出现的位置
三维偏序,找到满足条件的
直接暴力看作三维区间查询,上
反正没被卡就是过了。
F
先考虑平面最远点对怎么做。
本质上就是通过该数据结构找到每个点距离最远的点取一个
具体来说,维护一个当前最大值
故我们考虑结合
-
首先是一个类似估价函数的东西,就是说你先找到当前节点所管辖的矩阵距离“你要询问最远距离的点”的最长距离。如果你发现这个理论最长距离已经比你当前求出来的答案要小了,那么这个节点管辖矩阵里的所有点显然都是没用的。
-
故我们考虑对于数据结构上的每个点所管辖的矩阵按照理论最长距离弄出估价函数,那么在递归的时候,我们先进估价函数大的,再进小的,如果当前节点的估价函数比答案小,那就不用继续做了,直接返回。
然后对于第
注意,这样计算的点对是有序的,
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具