duel 记录
duel 记录
省流,juju 太菜了,总共 win 了 2 把。
数据实时更新。
1. ?
?
hzr 胜 juju。
是一个低分题,皇子很快秒了,我根本没读懂题意。
2. Jzzhu and Squares
*2900
juju 胜 hzr。
这个题我和皇子都做了非常久。
题意是求格点正方形完整包含的格子个数,注意到格点正方形可以是由“三垂直”结构构成的斜的正方形。
我们考虑一个横平竖直的 的正方形的贡献 。
。
是两条直角边为 的等腰三角形内的完整格点数。运用皮克定理可以得到 的式子。
完整的式子推导比较繁琐,最终的式子仅需要知道 ,可以写狄利克雷卷积也可以线性筛。
时间复杂度 或 。
3. Karen and Cards
*2800
hzr 胜 juju。
自己编的做法很多细节,而如果基于值域 的话可以使用线段树做法将细节减少非常多。
说说我自己的做法。
考虑按 分别降序排序之后,一个三元组 显然会输给三个维度的三个前缀。
而有贡献的三元组等价于对应的三个前缀没有重复元素。
我们考虑枚举 维的前缀 ,此时 维和 维分别有一个红线不能越过。而 在此时一定是一个单调不降和单调不升的双指针结构的贡献。
我们可以提前预处理出 往后扫, 往前扫的贡献, 维的限制很好处理,我们截取一段 的区间即可,可以用二分实现。
时间复杂度 。
4. Yet Another LCP Problem
*2600
zph 胜 juju。
写了一个 的 SAM 上树剖做法,调试太慢了败给了 zph/ll。
做法是经典的 [LNOI] LCA。
5. Even Harder
*2700
hzr 胜 juju。
啊啊啊,DP 题被皇子薄纱。这个题思路来得很快但是写起来被莫名其妙的细节卡了好久。
一个朴素的 DP 可以考虑 表示处理完 ,从 出发到 只有一条路径,这条路径上的后面一个点是 ,最少赋 0 次数。转移考虑枚举下一个路径上的位置即可,容易 。
优化可以试图将状态里的 这一维去除,考虑如果我们能直接不转移到能一步到达 的位置就好了。
我们可以将元素按 降序排序 DP, 表示处理到排名为 的元素,那一条唯一能到 的路径的最后一个点是 时的最少赋 0 次数。
如果我们需要将此时的节点加入路径,我们将第一维跳到 的第一个位置,越过所有不合法的位置,将区间里需要赋 0 的元素统计进代价。
时间复杂度 。
6. Appropriate Team
*2700
xzy 胜 juju。
这题做了好一会儿不会,xzy 都过了,终于去想对不同质因子分开考虑,很快会做了。
我们对于质因子 考虑题目给定限制:
。
条件不满足当且仅当 。
我们把 的质因子拿出来,只有这些质因子满足 ,由于 ,我们对这些质因子做 FWT 是很轻松的。
时间复杂度 。
7. Minimum Difference
*3100
juju 胜 hzr。
时限 5s,数据范围全是 1e5,试试带修莫队。
考虑莫队时维护出每个数的 occ 和 occ 为 的数的个数。
我们所求即为在后者数组上,最小的一个区间使得区间和不少于 。
而有值的位置不超过 个,我们可以维护有值的位置拿下来双指针。
我实现的做法是 。
带修莫队的块长乱设的,感觉 5s 随便过。
8. Number of Components
*2800
zyf 胜 juju。
为啥题面是 啊/fn/fn。
首先一个一眼的做法是线段树分治,,空间 ,感觉过不去。
我们考虑利用好题目里的特殊性质 。
观察到直接做并查集难以维护的原因是会有分裂操作。
我们可以倒过来做将分裂转化成合并操作,具体的可以维护 的并查集,到 的修改时将 的点全部删掉,这个部分的贡献正着扫的时候求得。
时间复杂度 。
9. Armor and Weapons
*2800
和 zyf 平局
不会做,很神秘,感觉也不是很难。
不妨设 。
一个简单的观察是答案不超过是 ,构造是斐波那契到 满了之后一直往第二维堆就行了。
我们可以暴力的 DP 表示第 次操作第一维是 时第二维的最大值,复杂度 。
10. Cow Tennis Tournament
*2800
hzr 胜 juju
小输 6min,中途去上大号亏麻了,蹲下没一会儿想到了比较关键的地方就会做了。
首先 没啥用,排序之后当成每次反转一个区间的边就行了,题目要求我们计数三元环。
在思考直接做无果之后考虑正难则反,反方向考虑不是三元环怎么数。
我们数左中右三种入度/出度为 2 的点就行了,具体的考虑得到 号点左边连向它的点数和右边连向它的点数,容易计算出答案。
想计算一个点一遍有多少点连向它可以扫描线线段树维护 01 值,只需要支持区间异或和区间 01 个数。
时间复杂度 。
11. Duff is Mad
*3000
hzr 胜 juju
怎么 DS 也输???
一开始考虑了直接 ACAM 上树剖啥的 polylog,但发现有 trie 树上链查,不太可做。转而思考根号。
考虑对串长根号分治:
- 对于 为小串的询问可以丢一起处理,将查询差分变成前缀查询,扫描线,支持子树加,单点查(暴力查询 trie 数上链和)。
- 对于 为大串的询问每个 单独做一次扫描线,需要支持单点加,子树查。
只需要实现一个 单点修改, 区间查询的分块即可平衡复杂度。
时间复杂度 , 同阶就不区分了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具