2023.12.25 近期练习
CF1793F
有一个朴素的想法,使用不删除莫队,使用一种数据结构维护相邻元素的差,
可以通过链表加不增加莫队,维护最小值,使用值域分块,
即使如此,也因为常数过大无法通过。
考虑使用扫描线,从右往左扫描区间,将询问挂到左端点上。
大于小于是等价的,先处理大于的。
我们假设现在扫到
先找到右边第一个大于
下一步,找下一个
这里有一个优化,就是
每次范围都减半,保证了复杂度,为
具体地,开一棵值域线段树维护当前值最小的位置,再开一棵线段树维护区间
这种问题是经典的区间询问问题,允许离线的话,应使用经典的扫描线模型。
CF1771F
出现次数为奇数,可以用异或来处理。
考虑建立主席树,可以查询一个区间的信息。
我们现在要求最小出现的数,考虑二分,只需要查询左边区间是否有数为奇数即可。
如果我们把每个数随机分配一个权值, 把所有数异或起来,如果有数出现奇数,那么一定有值。
二分可以放到线段树上二分。然后就做完了。
这类问题强制在线,只能用主席树,有关出现次数的应想到异或。
CF1788F
想到带权并查集,
我们可以通过带权并查集维护出若干连通块,同时可以判断无解的情况。
我们现在要求的是
设
那么如何填数值呢?拆位去填,设一个连通块中该位是
如果根填
默认填
这种问题是经典的带权并查集,之后二进制的处理应该用拆位,贪心即可。
CF1783F
先考虑只有一个数组
很套路的,把
如果我们操作
所以我们不断的删点,一个环若大小是
所以一张图的答案是
两种图不用删的点要是都不用删就好了,所以我们要尽量让不用删的点重合。
一个环只能出一个。将环做点去二分图匹配即可。
这种问题有关置换,可以建出“置换环”,之后转化成为二分图匹配的模型。
CF1778E
要支持换根以及查询子树,我们可以先钦定一个根
若
否则,设
子树内的话用线性基合并,复杂度
子树外怎么办呢?考虑把数拍成 dfs 序,如果预处理前后缀和,就可以
这种问题异或应与线性基联系起来,还有子树外信息的处理有关 dfs 序。
CF1823F
一道很典型的题。
直接列出方程,设
那么
那么就是
具体是,将
定
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!