首页 > 其他分享 >Cut the Sequence

Cut the Sequence

时间:2024-12-16 21:32:44浏览次数:6  
标签:Cut Sequence 后缀 max leq rm 维护

前言

还是别把 \(\rm{POJ}\) 的题都水过去, 好好想一想

不是哥们, 紫题?

思路

还是先想朴素的 \(\rm{dp}\) , 令 \(f_i\) 表示拆分到了位置 \(i\), 此时的最大整数之和的最小值

\[f_i = \min_{k = 1}^{\sum_{j = k + 1}^{i} {a_j} \leq M}\{ f_k + \max_{j = k + 1}^{i} {a_j} \} \]

这样 \(\mathcal{O} (n^2)\) , 怎么优化

考虑直接扔进 得塔斯抓克车儿 里面维护

事实上唯一的困难是我们需要动态地维护以 \(i\) 为结尾的 \(a\) 的后缀 \(\max\)

我们可以发现, 在之前的基础上添加 \(a_i\) , 我们段树二分找到第一个地方 \(p\) 使得其之后的后缀 \(\max\) \(\leq a_i\) , 那么我们就需要对 \([p, i]\) 的后缀 \(\max\) 值修改为 \(a_i\) , 解决了这个问题, 我们只需要考虑 \(\rm{dp}\) 的维护, 新开一棵线段树维护即可

复杂度 \(\mathcal{O} (n \log n)\)

实现

不太好写, 先不写了, 只是码量的堆罢了

总结

后缀 \(\max\) 的动态维护常用技巧:

  • 线段树
  • 单调栈 + 二分 / 并查集

标签:Cut,Sequence,后缀,max,leq,rm,维护
From: https://www.cnblogs.com/YzaCsp/p/18611154

相关文章

  • HDU1711-Number Sequence
    开始刷KMP1(看毛片算法)ViewCodeHDU1711暴力就是A的数字个数*B的数字个数,10^10,还要乘个未知的数据个数:T,肯定超时 开始 回顾  学KMP ......
  • 为什么在生成静态页或上传附件时出现“Maximum execution time of 30 seconds exceede
    在使用易优EyouCms生成静态页或上传附件时,如果遇到“Maximumexecutiontimeof30secondsexceeded”的错误提示,这通常是因为服务器上的PHP脚本执行时间超过了默认的最大执行时间限制。默认情况下,PHP的 max_execution_time 设置为30秒,这意味着如果脚本执行时间超过30秒,将会被......
  • JAVA中ScheduledExecutorService的使用方法
    ScheduledExecutorService简介ScheduledExecutorService是Java中的一个接口,它是ExecutorService的子接口。它主要用于在给定的延迟之后或周期性地执行任务。这个接口提供了一种方便的方式来处理异步任务的调度,相比于传统的Timer和TimerTask,它具有更好的灵活性和可靠性,特别是......
  • 高级java每日一道面试题-2024年12月10日-并发篇-为什么不建议通过 Executors构建线程
    如果有遗漏,评论区告诉我进行补充面试官:为什么不建议通过Executors构建线程池?我回答:在Java高级面试中,面试官可能会问到为什么不建议通过Executors构建线程池,这是一个关于线程池配置、资源管理和性能优化的重要问题。以下是对这一问题的详细解答:一、Executors的默认......
  • [学习笔记 #7] Link Cut Tree
    目录[学习笔记#7]LinkCutTreeLCT的基础作用、优势和劣势结构基本操作PushUpReversePushDownIsRootPushDownAllWhichRotateSplayAccessMakeRootFindRootLink&Cut&Split单点修改&单点查询&链修改&链查询维护边的信息维护子树信息洛谷上的模板题的代码LCT的应用[动......
  • P10977 Cut the Sequence
    P10977CuttheSequence看到题目我们不难想到动态规划,对于每一个点\(a_i\)可以求一个\(pre_i\)满足$\forallj\in[pre_i+1,i]$$a_l\lea_i$且$a_i<a_{pre_i}$用人话说就是从\(i\)往前数第一个大于\(a_i\)的数,然后我们可以对于\(a_i\)求一个前缀和,这样就能......
  • 数据执行保护(DEP,Data Execution Prevention) 是一种安全机制,旨在防止恶意代码在计算机
    数据执行保护(DEP,DataExecutionPrevention)是一种安全机制,旨在防止恶意代码在计算机的特定内存区域执行。它通过标记某些内存区域为“不可执行”,从而阻止攻击者在这些区域注入并执行恶意代码。DEP的工作原理DEP的基本思想是,操作系统通过对内存区域的权限控制,防止程序在某些特......
  • Executors线程池
    Executors是一个线程池的工具类,提供了很多静态方法用于返回不同特点的线程池对象。方法名称说明publicstaticExecutorServicenewFixedThreadPool(intnThreads)创建固定线程数量的线程池,如果某个线程因为执行异常而结束,那么线程池会补充一个新线程替代它。public......
  • 剪映专业版v5.9.0+剪映专业版v3.2.0+CapCut剪映国际版+剪映官方VIP破解版
    跨版本安装无需卸载可直接覆盖安装,但请注意草稿无法在低版本打开使用#剪映专业版智能字幕免费使用的最后一个版本v5.9.0.11632:https://lf3-package.vlabstatic.com/obj/faceu-packages/Jianying_5_9_0_11632_jianyingpro_0_creatortool.exe智能抠像免费使用的最......
  • 题解:CF176B Word Cut
    https://www.luogu.com.cn/problem/CF176B没看懂其他题解为什么说"可以发现,只要能从一个串变成一个串,都可以通过仅一次变换得到"。转化将题目中的操作转化一下:对于一个串\(s\),将串\(s\)复制一份接到\(s\)末尾,然后选择一段长度\(n\)的子串。发现:经过一次操作后,接下来......