一道很好的构造题
原题链接
很快就能想到,捡每个垃圾的能量可以最后再算。然后,对于每个垃圾,在路上耗费的能量仅与它是第几个被捡的有关,于是我们考虑将垃圾分组。
首先,我们定义\(F(x,i)\)为某次从\(0\)出发,捡到坐标为\(x\)的垃圾的次序为\(i\)的花费,则有:

\(F(x,i)=\left\{\begin{matrix} 5x\ \ (i=1)\\ (2i-1)x\ \ (i>1) \end{matrix}\right.\)
由上式,易知对于每一组,让机器人先捡最右边的垃圾,然后往回一个一个捡是最优的。同时,将所有垃圾从后往前按一个固定的间隔\(k\)分组是最优的。
所以,我们只需要枚举\(k\),再利用前缀和,\(O(logn)\)计算组间距为\(k\)的花费,更新一下答案就行了。
为什么是\(O(logn)\)?因为调和级数的性质,\(\sum\limits_{i=1}^n\frac{1}{i}=logn+O(1)\)。
因为中途计算时可能会爆\(long long\),所以我们要特判一下,当前的花费大于等于\(ans\)时就可以跳出循环了。
Code:

#include <bits/stdc++.h>using namespace std;#define ll long longint n;
ll x, ans = (ll)9e18, a[200005];int main() {cin >> n >> x;for(int i = 1; i <= n; ++i) cin >> a[i], a[i] += a[i-1];for(int k = 1; k <= n; ++k) {ll coef = 3LL, sum = 0;for(int i = n; i >= 1; i -= k) {sum += (a[i]-a[max(0, i-k)])*max(coef, 5LL), coef += 2;if(sum >= ans) break; //防爆long long}ans = min(ans, sum+(k+n)*x);}cout << ans << endl;return 0;
}

转载于:https://www.cnblogs.com/dummyummy/p/9660416.html

AGC027B Garbage Collector相关推荐

  1. AGC027B Garbage Collector 题解

    关于这道题的正解是贪心... 然而还在考场上拼死写dp(不会\(O(N)\)的,表示只想拿到400分) |题目链接| |题解| |AC代码| 这道题我们可以枚举将它分成多少段, 显然对于每一段, 我们 ...

  2. Java-JVM虚拟机内存垃圾回收机制gc入门:引用类型,对象标记算法,回收算法,常见的 garbage collector

    文章目录 GC的优缺点 引用的四种类型 对象标记算法 引用计数法 可达性分析法 回收算法 标记-清除算法(Mark-Sweep) 复制算法 标记-整理算法(Mark-Compact) 分代收集算法 常 ...

  3. 深入理解JVM 一GC(下) G1 Garbage Collector

    文章目录 关于java程序性能 响应能力 吞吐量 G1 Garbage Collector g1收集器的设计目标: G1的设计规划,是要替换掉CMS. 之前的GC收集器对Heap的划分: G1对Hea ...

  4. k8s garbage collector源码分析(1)-启动分析

    k8s garbage collector分析(1)-启动分析 garbage collector介绍 Kubernetes garbage collector即垃圾收集器,存在于kube-contr ...

  5. About Garbage Collector and finilize()

    这是一个测试finilize()的程序: class fin { String s = "Begin..."; fin() { System.out.println(this.s) ...

  6. gc java ibm_gc分析工具(IBM Pattern Modeling and Analysis Tool for Java Garbage Collector)

    分析WAS产生的GC Log的工具,打开详细垃圾回收产生gc log日志文件native_stderr.log 和 native_stdout.log .做gc调优目标,就是减少gc频率和耗时,以及减 ...

  7. jvm ide_通过微调JVM Garbage Collector减少Java IDE滞后

    jvm ide 有没有想过为什么Eclipse / Netbeans会一直暂停一段时间? 特别是当您想向亲爱的同事展示代码中的内容时? 感到尴尬和尴尬,不是吗? 我发现大多数情况下IDE会由于执行垃圾 ...

  8. 通过微调JVM Garbage Collector减少Java IDE滞后

    有没有想过为什么Eclipse / Netbeans会一直暂停一段时间? 特别是在您想向亲爱的同事展示代码中的内容时? 感觉很尴尬和尴尬,不是吗? 我发现大多数时间由于垃圾收集器的执行而导致IDE暂停 ...

  9. 不建议使用CMS Java Garbage Collector:下一步是什么?

    JDK 9中不赞成使用流行的并发标记扫描(CMS)GC算法.根据 JEP-291 ,已做出此决定以减轻GC代码库的维护负担并加速新开发. 因此,从Java 9开始,如果使用 -XX:+ UseConc ...

最新文章

  1. 查看本地oracle密码,Oracle 本地验证和密码文件
  2. 树莓派linux编译不了动态库,linux系统下的树莓派与Qt 5.12.3源码的交叉编译
  3. 'MomentumSGD' 'zero_grads'
  4. 虹影图片下载器(Preview)
  5. 【视频课】Pytorch模型分析进阶(可视化,参数量与计算量,计算速度)
  6. mysql 查询前一个月数据_mysql 查询当天、本周,本月,上一个月的数据......
  7. 基于Tensorflow实现DeepFM
  8. matplotlib.patches.Polygon
  9. Java字符串替换(replace)
  10. 【iOS】TouchDown、TouchDownRepeat 和 TouchCancel 的区别
  11. 3个方法解决百度网盘限速问题
  12. mpu6050 z轴校准_MPU6050校准
  13. mysql distance_MySql中的一些小坑
  14. 亚马逊qa是什么意思_“亚马逊成就”是什么意思?
  15. Win7下面安装VS2003
  16. 中国大地坐标系CGCS2000
  17. 【工业互联网】漫谈“工业互联网”与“智能制造”
  18. 沃丰科技:AI赋能泛CRM,为新企服扬风鼓帆
  19. 纯HTML写国际象棋棋盘
  20. Excel如何将工作表按数值大小排序

热门文章

  1. jquery datatable搜索框添加按钮,改变keypress搜索为点击按钮搜索
  2. 手动构建磁贴服务器(16.04.2 LTS)
  3. openlayers基础系列教程(一)
  4. 主动型页面性能利器:Page Status
  5. wpa_supplicant无线网络配置
  6. VMware 常见使用问题梳理
  7. 前端学习(2988):vue+element今日头条管理--使用技术栈
  8. [html] html中p标签内为何不能嵌套div标签?
  9. 工作392-选择Hbuilder x导入项目
  10. [vue] 动态给vue的data添加一个新的属性时会发生什么?怎样解决?