首页 > 其他分享 >24.10.13

24.10.13

时间:2024-10-13 21:26:41浏览次数:7  
标签:suf 13 could 24.10 根号 went sum 单调

P3648

P3648 [APIO2014] 序列分割

李超树用多了已经不会单调队列维护斜率优化了...

首先切的顺序不影响答案。\((x + y)z + xy = x(y + z) + yz\)。更多份同理。

\(sum\) 表示前缀和,\(suf\) 表示后缀和。设 \(f_{i, j}\) 表示前 \(i\) 个数切成 \(j\) 份的最大值。

\(f_{i, j} \gets \max_{k = 1}^{i - 1} (f_{k, j - 1} + suf_{i + 1}(sum_i - sum_k))\).

先拆柿子 \(f_{i, j} - suf_{i + 1}sum_i = f_{k, j - 1} - suf_{i + 1}sum_k\).

看上去很斜率优化,考虑每一层维护一个李超树,李超树带 \(\log\) 过不去。注意到 \(sum\) 和 \(suf\) 都单调考虑单调队列。

对于两个决策点 \(k, j, k < j\),\(j\) 比 \(k\) 更优满足 \(f_k - suf_{i + 1}sum_k < f_j - suf_{i + 1}sum_j\)。

移项解得 \(\dfrac{f_j - f_k}{sum_j - sum_k} > suf_{i + 1}\)。\(suf\) 单调递减,把 \((sum_i, f_i)\) 看成点,维护一个斜率单调减的单调队列(凸包)。

由于 \(a_i\) 可能为 \(0\),当 \(sum_j = sum_k\) 时返回极大值。

P6302/P5468

P6302 / P5468 回家路线

以边为状态 dp

先将边按 \(p\) 排序,设 \(f_i\) 表示到第 \(i\) 条边,等待烦躁值的最小值。

那么枚举可以转移的边

\(f_i \gets \min_j(f_j + A(p_i - q_j) ^ 2 + B(p_i - q_j) + C)\).

拆:\(f_i - Ap_i^2 - Bp_i^2 - C = -2Ap_iq_j + f_j + Aq_j^2 - Bq_j\).

然后 \(k < j\),\(j\) 由于 \(k\) 即 \(-2Aq_kp_i + f_k + Aq_k^2 - Bq_k > -2Aq_jp_i + f_j + Aq_j^2 - Bq_j\),也就是 \(\dfrac{(f_j + Aq_j^2 - Bq_j) - (f_k + Aq_k^2 - Bq_k)}{q_j - q_k} < 2Ap_i\)。

然后可以对每个点开一个单调队列,转移边时从 \(x\) 转移,存到 \(y\) 的单调队列。

转移要求 \(q_j \le p_i\),可以先把已转移好的边放到按 \(q\) 排列的小根堆里,在处理 \(i\) 之前把 \(q_j < p_i\) 的边压入单调队列。

P11191

P11191 「KDOI-10」超级演出

差点场切 /kk

由于选的是一段连续区间,考虑找出序列中 \(a_i\) 可以走的最大的左端点,记为 \(could_i\),这样的话如果询问区间包含 \([could_i, i]\) 就可以走一个。

但是 \(a_i\) 可能相同,维护 \(a_i\) 上一次出现的位置记为 \(lst_{a_i}\),如果 \([could_{lst_{a_i}}, lst_{a_i}]\) 和 \([could_i, i]\) 同时被包含,就会重复计算贡献,减去即可,相当于 \([could_{lst_{a_i}}, i]\) 区间会造成 \(-1\) 的贡献。

区间内子区间贡献是经典离线二维数点,不多赘述。

现在讲一下如何找到 \(could_i\),我们可以遍历序列时维护 \(went_{x}\) 表示 \(x\) 这个点能走的最大左端点,如果 \(x\) 指向 \(1\),那么 \(went_x\) 就是 \(x\) 在序列中最后出现的位置,不然 \(went_x\) 就是 \(x\) 指向点的 \(went\) 的最大值。

此时我们意识到如果出题人放个菊花就能把这个过程卡成 \(O(n^2)\),考虑使用根号分治优化。

如果一个点的出边数小于等于根号,那么每次暴力找即可。不然每个点开一个 vector 记录它出度大于根号的前驱,在更新完每个点的 \(went\) 后直接对其出度大于根号的前驱进行更新。

然后这时注意 \(went_x\) 由于在 \(x\) 出现前被更新了,所以在 \(x\) 被遍历到之前 \(went_x\) 不能去更新别的点,那么出度小于根号的点暴力找的时候就去找上一次的状态来更新,即 \(could_{lst_y}\)。

Code

标签:suf,13,could,24.10,根号,went,sum,单调
From: https://www.cnblogs.com/KinNa-Sky/p/18462996

相关文章

  • 2024.10.13 速度奇慢
    我就知道不能睡觉,以后要求自己,天天趴着入睡,那可是完全不能入睡的节奏。几乎只有浅睡眠。 这就是我对自己的要求,天天坐着睡觉,我觉得对健康很不利,但是,你醒着不能干活,那再不健康也得执行。 要求自己必须每天早上6点,无论缘由。 最后,我说一下相关性要不要考虑。类似于【近朱......
  • 2024.10.11 LGJ Round
    C有\(N\)人站在一条数轴上。他们人手一个烟花,每人手中的烟花都恰好能燃烧\(T\)秒。每个烟花只能被点燃一次。开始时,只有\(K\)号的烟花开始燃烧,当两人位置重叠且其中一人手中的烟花燃着时,另一人手中的烟花就可以被点燃。求至少需要以多快的速度跑,才能使所有人的烟花都曾被点......
  • 2024.10.12 test
    A一棵二叉树,相同深度的点位置相邻的有一条边,给出两条根开始的路径,可以向上/左/右/左儿子/右儿子走,问最后走到的两个点最短距离。路径长度\(\le10^5\)。考虑求出两条路径分别走到的位置,用根开始的路径表示,每次向左/向右,用\(0/1\)表示。最后统计答案,两个点一定是走到某个深度......
  • 2024-2025 20241313刘鸣宇《计算机基础与程序设计》第三周学习总结
    1.阅读《C语言程序设计》,对有疑问的地方寻找AI进行解答2.3.《计算机科学概论》学习总结(1)第二章学习了不同进制(二进制,十进制,八进制,十六进制)之间的转换学习了其他技术系统中的运算规则(2)第三章1.信息与数据的区别:信息是数据的一种2.为何进行数据压缩:网络具有固定的带宽限制,压......
  • 信息学奥赛一本通 2070:【例2.13】数字对调 答案
    目录【链接】【题目描述】【输入】【输出】【输入样例】【输出样例】【答案】【链接】2070:【例2.13】数字对调http://ybt.ssoier.cn:8088/problem_show.php?pid=2070【题目描述】输入一个三位数,要求把这个数的百位数与个位数对调,输出对调后的数。【输入】三......
  • 2024.10.13 2010版
    起于《海奥华预言》的思考◆地球管理结构和参考持续更新中...... 英文地址:https://github.com/zhuyongzhe/Earth/tags中文地址:https://www.cnblogs.com/zhuyongzhe85作者:朱永哲 ---------------------------------------------------------------------------------......
  • 2024-2025-1 20241312 《计算机基础与程序设计》第3周学习总结
    |这个作业属于哪个课程|https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP|这个作业要求在哪里|https://www.cnblogs.com/rocedu/p/9577842.html#WEEK03|这个作业的目标|数字分类与计数法位置计数法进制转换模拟数据与数字数据压缩与解压数字化信息安全|作业正文|h......
  • 2024-10-13:用go语言,给定一个二进制数组 nums,长度为 n, 目标是让 Alice 通过最少的行动
    2024-10-13:用go语言,给定一个二进制数组nums,长度为n,目标是让Alice通过最少的行动次数从nums中拾取k个1。Alice可以选择任何索引aliceIndex,如果对应的nums[aliceIndex]是1,Alice会拾取一个1并将其设为0。之后,Alice可以选择以下两种行动之一:将一个0变为1(最多执行maxCh......
  • zookeeper 都有哪些使用场景?思考13
    大致来说,zookeeper的使用场景如下,我就举几个简单的,大家能说几个就好了:分布式协调分布式锁元数据/配置信息管理HA高可用性分布式协调这个其实是zookeeper很经典的一个用法,简单来说,就好比,你A系统发送个请求到mq,然后B系统消息消费之后处理了。那A系统如何知道B系统......
  • ChatGPT 中文版镜像网站整理合集(2024/10/13)
    一、GPT中文镜像站① yixiaai.com 支持GPT4、4o以及o1,支持MJ绘画② chat.lify.vip 支持通用全模型,支持文件读取、插件、绘画、AIPPT③ AIChat 支持GPT3.5/4,4o以及MJ绘画1.什么是镜像站镜像站(MirrorSite)是指通过复制原始网站内容和结构,创建的备用网站。其主要目的......