CSP-S 2024 第三次

这种级别的线段树都会写挂了吗……看来还得训数据结构

A

fi,j 表示填到 pj,在 pj 填了 i 的方案数。

当然 C 和 F 是独立的,可以分别 DP。

B

直接用并查集合并要合并的点,维护每个连通块的最浅点就可以找出路径上的所有连通块。

C

先求出凸包 A,调整法可以证明光纤的斜率一定与凸包的某一条边相同。

光纤的斜率与边 AiAi+1 相同时,设凸包上离 AiAi+1 最远的点为 j,则此时答案为 jAiAi+1 的距离的一半。

枚举光纤的斜率与哪条边相同,用旋转卡壳求出离这条边最远的点,更新答案即可。

D

考虑一次询问,对于询问区间中第 i 个正号连续段,记 ci 为其中所有数的乘积乘上其长度,则答案为 c 的所有子区间和之和,

假设有 k 个正号连续段,则所求即为 i=1kci×i×(ki+1)

考虑线段树,维护区间左侧极长正号连续段的长度及乘积,右侧极长正号连续段的长度及乘积,正号连续段个数,

还有 i=1kcii=1kci×ii=1kci×(ki+1)i=1kci×i×(ki+1)

这样除了 4 操作就都能做了。

在线段树的每个节点上,维护 bl 表示长度为 l 的正号连续段的 i×(ki+1) 之和,然后四操作就能做了。

注意到长度为 L 的节点上的 b 只会有 L 个位置,所以对一个长度为 L 的节点 push up 复杂度为 O(L)

L=O(n),所以修改一次的复杂度为 O(L)=O(n)

太难写了先咕了,但是数据太水了 4 操作暴力做都能过,,,

posted @   Jijidawang  阅读(60)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示