当前位置: 首页 > news >正文

【学习笔记】CF573E Bear and Bowling

感觉贪心的做法比较自然🤔,推荐 这篇博客

非常经典牛逼的贪心思路:

考虑每次加入一个数,位置 i i i的贡献为 V i = k i × a i + b i V_i=k_i\times a_i+b_i Vi=ki×ai+bi,其中 k i k_i ki表示 i i i以前被选的位置的个数, b i b_i bi表示 i i i以后被选的数的和

发现每次都会加入当前贡献最大的数。想一想会发现非常对,可以用归纳+调整法证明。感觉就是拟阵啊?

这样,我们考虑分块,发现对于整块的询问本质上就是维护凸包(类似于斜率优化),这样就做完了

事实上我们不需要在凸包上二分,注意到询问的 k k k是递增的,因此不断弹出队头元素即可

复杂度 O ( n n ) O(n\sqrt{n}) O(nn )

remark \text{remark} remark 别把凸优化学魔怔了。。。不是啥题都要用 D P DP DP。。。

http://www.lryc.cn/news/171204.html

相关文章:

  • 函数扩展之——内存函数
  • 【在线机器学习】River对流数据进行机器学习
  • 第 4 章 串(串的块链存储实现)
  • Element表格之表头合并、单元格合并
  • go学习-JS的encodeURIComponent转go
  • MySQL索引、事务与存储引擎
  • 【Spring面试】八、事务相关
  • Windows平台Qt6中UTF8与GBK文本编码互相转换、理解文本编码本质
  • 【探索Linux】—— 强大的命令行工具 P.9(进程地址空间)
  • ESP32主板-MoonESP32
  • Python 图片处理笔记
  • SpringCloud Ribbon--负载均衡 原理及应用实例
  • Redis的介绍以及简单使用
  • ad18学习笔记十二:如何把同属性的元器件全部高亮?
  • SpringSecurity 核心过滤器——SecurityContextPersistenceFilter
  • 反转单链表
  • 加速新药问世,药企如何利用云+网的优势?
  • C++中string对象之间比较、char*之间比较
  • MVVM模式理解
  • js常用的数组处理方法
  • [Document]VectoreStoreToDocument开发
  • 【LeetCode-简单题】225. 用队列实现栈
  • 数据预处理方式合集
  • 【前端】jquery获取data-*的属性值
  • GB28181学习(五)——实时视音频点播(信令传输部分)
  • 单例模式(饿汉模式 懒汉模式)与一些特殊类设计
  • 133. 克隆图
  • 交流耐压试验目的
  • 使用 YCSB 和 PE 进行 HBase 性能压力测试
  • 正则表达式相关概念及不可见高度页面的获取