CF38E Let's Go Rolling!

考虑 \(\text{DP}\)。

先将弹珠按坐标升序排序。

定义 \(f_i\) 为最后一个选择原地不动的是第 \(i\) 个弹珠的最小答案。

考虑转移。由于 \(n\leq 3000\),可以直接枚举上一个原地不动的弹珠 \(j\),转移方程

为:

\[f_i=\min\{f_j+calc(i-1,j) | 1\leq j < i \}
\]

其中第一个弹珠必须选择原地不动: \(f_1=c_1\),以及 \(calc(i,j)\) 为 \((j,i]\) 区间内的弹珠向左滚动的代价之和。

推导一下 \(calc(i,j)\):

\[\begin{aligned}
calc(i,j)
&=\sum_{k=j+1}^{i} (x_k-x_j)\\
&=-(i-j)\cdot x_j + \sum_{k=j+1}^{i}x_k
\end{aligned}
\]

用前缀和优化即可。

最终答案为 \(\max \{ f_i+calc(n,i)|1\leq i \leq n \}\)。

记得开 long long

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int INF=1e18;
const int N=3005;
int n;
int f[N],s[N];
struct node{
int x,c;
bool operator < (const node& b) const {return x < b.x;}
}a[N];
inline int calc(int i,int j){return s[i]-s[j]-a[j].x*(i-j);}
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i].x>>a[i].c;
sort(a+1,a+n+1);
for(int i=1;i<=n;i++) s[i]=s[i-1]+a[i].x;
int ans=INF;
for(int i=1;i<=n;i++){
f[i]=INF;
if(i==1) f[i]=a[i].c;
for(int j=1;j<i;j++) f[i]=min(f[i],f[j]+calc(i-1,j)+a[i].c);
ans=min(ans,f[i]+calc(n,i));
}
cout<<ans;
return 0;
}

CF38E Let's Go Rolling!的更多相关文章

  1. Rolling Cursor Invalidations with DBMS_STATS.AUTO_INVALIDATE (文档 ID 557661.1)

      Rolling Cursor Invalidations with DBMS_STATS.AUTO_INVALIDATE (文档 ID 557661.1) 转到底部 In this Documen ...

  2. Oracle RAC环境下如何更新patch(Rolling Patch)

    Oracle RAC数据库环境与单实例数据库环境有很多共性,也有很多异性.对于数据库补丁的更新同样如此,都可以通过opatch来完成.但RAC环境的补丁更新有几种不同的更新方式,甚至于可以在零停机的情 ...

  3. rolling hash

    也是需要查看,然后修改,rolling hash, recursive hash, polynomial hash, double hash.如果一次不够,那就2次.需要在准备一个线段树,基本的线段树 ...

  4. 从Kali 2.0 转至 Kali Rolling

    1. 修改官方软件库列表 编辑/etc/apt/sources.list,注释掉原有内容,然后添加下述内容. # kali rolling deb http://http.kali.org/kali ...

  5. HDOJ(HDU) 2135 Rolling table

    Problem Description After the 32nd ACM/ICPC regional contest, Wiskey is beginning to prepare for CET ...

  6. Rolling cURL: PHP并发最佳实践

    Rolling cURL: PHP并发最佳实践 在实际项目或者自己编写小工具(比如新闻聚合,商品价格监控,比价)的过程中, 通常需要从第3方网站或者API接口获取数据, 在需要处理1个URL队列时, ...

  7. Kali Rolling在虚拟机安装后的设置

    Kali Linux在2016年的第一个发行版——Kali Rolling是Debian的即时更新版,只要Debian中有更新,更新包就会放入Kali Rolling中,供用户下载使用.它为用户提供了 ...

  8. Kali Rolling 下利用rtl-sdr跟踪飞机路线

    环境 kali rolling 状态:未升级发行版,仅用 "apt-get upgrade " 命令更新了软件 原料 RTL-SDR电视棒一个,芯片是RTL2832U 原理 我国民 ...

  9. kali Rolling 安装QQ

    ------------------------------------------------------------------- 环境: kali Rolling   64位 所需软件包: Wi ...

  10. Rolling Hash(Rabin-Karp算法)匹配字符串

    您可以在我的个人博客中访问此篇文章: http://acbingo.cn/2015/08/09/Rolling%20Hash(Rabin-Karp%E7%AE%97%E6%B3%95)%E5%8C%B ...

随机推荐

  1. Xamarin.Android 特性-ActivityAttribute -中文说明

    using System; // 指定该特性用于类,并且不可重复或被继承 [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, ...

  2. SpringBoot--学会配置日志

    理解SpringBoot 的日志设计 在项目中导入spring-boot-starter.jar依赖,它会传递 导入spring-boot-starter-logging.jar依赖,依赖关系如下图: ...

  3. SciTech-EECS-Computer Network:OSI: 链路:mac地址+集线器/交换机⇒子网⇒网络层:ip地址+路由器+

    SciTech-EECS-Computer Network:OSI: 链路:mac地址+集线器/交换机⇒子网⇒网络层:ip地址+路由器+ OSI: 链路:mac地址+集线器/交换机⇒子网⇒网络层:ip ...

  4. 解决报错:错误1130- Host xxx is not allowed to connect to this MariaDb server 九五小庞

    在云服务器上面搭建了MariaDb(MariaDB是MySQL源代码的一个分支),但是远程链接不上. 首先,你要确保服务器安全组3306端口已经开放. 在确保端口开放的情况下,如果出现错误代码1130 ...

  5. Win11双击文件夹卡死转圈打不开的问题

    有一部分雨林木风官网的win11专业版用户,在使用电脑鼠标双击文件夹时,出现无法打开,而且箭头也是一直在转圈圈的问题,这是个什么情况呢?本文中,雨林木风小编将为大家分享详细的解决方法,希望可以帮助到有 ...

  6. Win10纯净版软件闪退无法运行的问题

    最近不少雨林木风官网用户在使用Win10电脑的时候都遇到了这么一个问题,在运行某些软件的时候,程序直接闪退无法正常的额运行 ,遇到这种问题我们具体应该怎么解决呢?下面小编就带着大家一起看看吧! Win ...

  7. 3d的单向平台检测

    https://www.youtube.com/watch?v=qwwjwb7XlUc using UnityEngine; [RequireComponent(typeof(BoxCollider) ...

  8. AI 是搭子不是替代者:我用大模型工具(cursor,trae)编程的一年经验总结

    大模型 + Cursor 编程实践经验分享:AI 不是替代者,而是开发加速器! 从使用大模型编程至今,尤其是在 Cursor 编辑器 + AI 编程助手(如 GPT-4.1.Claude.Gemini ...

  9. markdown符号双下标如何实现? 行内公式 | 上标下标 | 行内公式 | 单独公式快

    实现效果: 一.行内公式: \(J^x_{ij}\) 二.换行单独的公式块: \[J^x_{ij} \] 如何实现? 一.行内公式: $J^x_{ij}$ 二.换行单独的公式块: $$ J^x_{ij ...

  10. Tomcat控制台输出乱码问题

    Tomcat在控制台的输出显示中文乱码 找到Tomcat安装目录 Tomcat\apache-tomcat\conf\logging.properties 在logging.properties中有关 ...