首页 > 其他分享 >2023-07-01 开摆

2023-07-01 开摆

时间:2023-07-01 21:33:42浏览次数:40  
标签:le 开摆 07 可以 从左往右 01 端点 区间 加油

CF671E Organizing a Race

考虑一组 \([L,R]\) 是否合法。

最优的策略肯定是,从 \(L\) 开始往右走,每次发现油不够了就贪心在自己这里加油。最后把所有剩下的全加在 \(R\) 上。

现在描述一下“油不够”的情况。设 \(f_x\) 表示从 \(n\) 走到 \(x\) 的油量。(可以发现,\(f\) 可能有负数)

那么,如果 \(f_x \le f_y\),就说明从 \(x\) 向左走到 \(y\) 不用额外加油。同样如果 \(f_x-k \le f_y\) 就说明如果你可以做 \(k\) 次操作你也能从 \(x\) 向左走到 \(y\)。

扫描线从右往左扫描左端点,我们可以动态维护出为了保证从左往右能走过去,应该怎么加油。(一共只有 \(O(n)\) 次修改)每次修改都是对 \(f\) 的区间加减。

为了方便,我们可以认为在 \(x\) 位置操作使得 \([x,n]\) 的区间的 \(f\) 减少 \(1\)。

我们设 \(f'\) 表示修改以后得到的新 \(f\)。先预先算出 \(r'\) 表示保证从左往右的情况下最远的右端点,于是要求真实的右端点不超过 \(r'\)。这时 \(f\) 的限制就可以看作是:

\[f_r \le \min_{i=l}^{r} f'_i \]

其实最远的 \(r\) 并不好找。不过我们可以快速 chk 一个区间 \([L,R]\) 是否有合法的解。具体的说,我们取出这个区间最大的 \(f\) 的位置,如果它不合法区间就无解。

证明可以讨论一下。不过我们有了这个结论后,就能线段树二分解决了。

标签:le,开摆,07,可以,从左往右,01,端点,区间,加油
From: https://www.cnblogs.com/havzriu/p/17519907.html

相关文章

  • 暑假第二周(6/25~7/01)
    6/25 从今天起,我爸我妈要上班(明明是周日),我弟要上学(万恶且该死的调休政策),所以今天一个人在家(中午也没一个人回来)早上8点,在太阳光的催促下我睁开了双眼,妈妈应该是刚走没多久,弟弟是五点钟起的床,不到六点就到了学校,现在学生真苦,初一就这么紧张。我起来进行洗漱,肚子饿了,在厨房里找......
  • 2023-07-01:redis过期策略都有哪些?LRU 算法知道吗?
    2023-07-01:redis过期策略都有哪些?LRU算法知道吗?答案2023-07-01:缓存淘汰算法(过期策略)当Redis的内存超出物理内存限制时,内存中的数据就会频繁地与磁盘进行交换,这个过程叫做交换(swap)。由于交换的高开销,Redis的性能会急剧下降。对于访问频率较高的Redis实例来说,这样低效的存取效率......
  • 2023-07-01:redis过期策略都有哪些?LRU 算法知道吗?
    2023-07-01:redis过期策略都有哪些?LRU算法知道吗?答案2023-07-01:缓存淘汰算法(过期策略)当Redis的内存超出物理内存限制时,内存中的数据就会频繁地与磁盘进行交换,这个过程叫做交换(swap)。由于交换的高开销,Redis的性能会急剧下降。对于访问频率较高的Redis实例来说,这样低效的存取效率几乎......
  • HO引擎近况20230701
    6月份忘了来写博客了,原因主要就是我离职了,好多事所以这个彻底忘了离职的原因是公司说现金流断了,没钱了,整个项目组都砍了,别的项目组据说也快了于是这个月就在找工作中,各种原因,真的不好找我感觉可以自己需要再去充充电了,而且需要开拓一下自己以前想做没做的方面,为以后多......
  • AtCoder Beginner Contest 307(E,F,G)
    AtCoderBeginnerContest307(E,F,G)E(dp)E这个题大意就是我们需要组成一个长度为\(n\)的数组,满足两个相邻的数字不可以相等,其中,\(a_1\)和\(a_n\)也是相邻的,我们可以选择的数字为\(0\)到\(m-1\),问最后有多少种不同的组成方式满足以上条件。题目大意很简单,就是有点难想,如果\(a......
  • JMeter性能测试-01
    一、使用JMeter工具发送get请求(1)不带参数的get请求 (2)路径上带参数的get请求 (3)带参数的get请求二、使用JMeter工具发送post请求(1)不带参数的post请求 (2)表单数据类型的post请求 (3)form数据类型的post请求,要添加http信息管理头,申明是json数据格式三、JMeter设......
  • 02_MyBatis01
    1.JDBC操作的缺陷JDBC查询数据代码JDBC添加数据代码JDBC操作的问题数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能sql语句在代码中硬编码,造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。查询操作时,需要手动将结果集中的数据手动封......
  • DOS常见命令-01
    #盘符切换   比如:D:回车 ,E:回车#查看当前目录下的所有文件:dir#切换目录:cd(change切换directory目录)  跨盘符:cd/dD:\凯旋(其中/d是参数这样可以跨盘符/参数的斜巷\这个是文件的斜杠)  cd目录1\目录2\..进入指定多级目录#返回上一级目录:cd.. ......
  • IDEA 2019 java开发工具软件安装教程
    IDEA全称IntelliJIDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、创新的GUI设计等方面的功能可以说是超常的。软件介绍析您的代码,查找......
  • 01修建结构
    1非结构化剪枝1.1.1细粒度剪枝细粒度剪枝是一种特定类型的剪枝方法,它指的是单个权重级别的剪枝。在细粒度剪枝中,模型中的每一个权重都会被独立地考虑是否需要被剪枝。这种方法的优点是可以非常精确地控制模型的大小和复杂性,因为可以精确地选择哪些权重需要被剪枝。然而,这也是一......