CF559E Gerald and Path 题解

news/2025/2/21 8:38:35/文章来源:https://www.cnblogs.com/w9095/p/18724175

CF559E Gerald and Path

很困难的 DP 题,状态不是很好想。对于这种线段覆盖类题目,显然先覆盖哪个线段没有影响,我们可以通过按照端点位置升序排序后按照顺序考虑,这样可能会有一些额外性质。

之后,考虑转移时需要什么东西来刻画一个状态的轮廓。显然我们需要知道现在是第几条线段,并且计算贡献需要知道覆盖右端点最远的线段以及其方向。如果这样设计状态,非最远线段的影响就会在加入最远线段时被计算,是正确的。

设状态 \(f_{i,j,k}\) 表示考虑到第 \(i\) 条线段,右端点最远的线段为 \(j\),方向为 \(k\)。考虑刷表,枚举 \(p\) 为考虑到的线段,\(q\) 为其方向。我们可以在从小到大枚举 \(p\) 的时候顺便记录右端点最大的值 \(x\) 与此时的方向 \(y\)

假设方向全都是向右,我们可以通过上图辅助理解。我们发现,增加的贡献可以分为两段。一段是 \(l+1\sim r\),另一段是 \(r+1\sim mx\)。在此图中,第一段贡献为 \(r-l\),第二段贡献是 \(mx-r\),把这些加到转移时的贡献中。事实上,如果方向不是向右,也是一样的,

假设方向全都是向右,注意到还有这种情况。此时第二段贡献还是 \(mx-r\),但是第一段贡献需要减去 \(l-r\)。注意到这等价于加上 \(r-l\),所以维持原转移不变。

假设方向全都是向右,注意到还有这种情况。第二段贡献不变,但处理第一段时,如果 \(l\)\(r\) 中间有空隙,那么 \(r-l\) 算出来的贡献就过大了,应该只有 \(l[p]\)。此时我们只需要把 \(r-l\)\(l[p]\) 取较小值。

综上所述,状态转移方程为如下。

\[f_{p,x,y}=\max\{f_{p,x,y},f_{i,j,k}+\min\{l[p],r-l\}+mx-r\} \]

时间复杂度 \(O(n^3)\)

#include <bits/stdc++.h>
using namespace std;
struct val
{long long a,l;
}a[200];
long long n,f[200][200][2],ans=0;
bool cmp(struct val a,struct val b)
{return a.a<b.a;
}int main()
{scanf("%lld",&n);for(int i=1;i<=n;i++)scanf("%lld%lld",&a[i].a,&a[i].l);sort(a+1,a+n+1,cmp);a[0].a=-1e18;for(int i=0;i<=n;i++)for(int j=0;j<=i;j++)for(int k=0;k<2;k++){long long l=a[j].a+k*a[j].l,mx=-1e18,x=0,y=0;for(int p=i+1;p<=n;p++)for(int q=0;q<2;q++){long long r=a[p].a+q*a[p].l;if(r>mx)mx=r,x=p,y=q;f[p][x][y]=max(f[p][x][y],f[i][j][k]+min(a[p].l,r-l)+mx-r);}}for(int i=0;i<=n;i++)for(int j=0;j<=i;j++)for(int k=0;k<2;k++)ans=max(ans,f[i][j][k]);printf("%lld\n",ans);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/886706.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中国PostgreSQL数据库认证体系和学习方向

中国PostgreSQL数据库认证体系和学习方向PostgreSQL认证,指的是PostgreSQL数据库管理员的能力认证,用来判断从业人员是否具备管理和维护PostgreSQL数据库的能力,由于数据库中存放着很多重要的数据,所以对于从业人员的要求极高,所以企业在招聘相关岗位的时候,会优先考虑有…

ATTCK实战系列(一)

环境下载 下载靶场环境,并导入虚拟机分别是win2003、win7、winserver2008配置网络 虚拟机——编辑——虚拟机网络编辑器——添加网络VMnet2——仅主机模式分配的地址是192.168.52.0配置好地址后,需要将win2003和winserver2008的网卡设置为VMnet2win7的网络需要两张,一张为VM…

DHTMLX Gantt 甘特图导出全数据图/PDF

最近有个需求,将项目甘特图导出图片,但发现问题:当项目甘特图内的行数很多时(这是必然,当项目周期长,建立的任务很多,就会出现很多任务行),超过了甘特图的可视区域,就会出现滚动条,导出图片的时候只会导出可视区域内显示的甘特图,其他非可视区域的内容没导出(就是…

185 注意力模型

我们利用\(\text{GRU}\)或者\(\text{LSTM}\)构建一个双向循环神经网络如下然后预测的时候我们使用普通的RNN,但是这个RNN的输入取决于源句子的每一个单词的加权和。我们用\(y\)表示预测的句子,\(a\)表示输入的句子,那么也就是说我们定义\(\alpha^{\left<t,t^{}\right>…

生产问题系统卡顿-涉及io磁盘性能排查

1.问题背景: 用户反馈系统卡顿,用top命令排查后服务器资源正常,并且数据库无阻塞和锁表。 2.解决问题方法: 用iostat命令对磁盘性能进行排查,发现io性能很差3.iostat命令详细解析 需要更详细看到磁盘指标情况需要用到iostat命令进行分析。 iostat -x -m 2命令说明:-x 显示…

P3242 [HNOI2015] 接水果

P3242 [HNOI2015] 接水果 题目描述 风见幽香非常喜欢玩一个叫做 osu! 的游戏,其中她最喜欢玩的模式就是接水果。由于她已经 DT FC 了 The big black,她觉得这个游戏太简单了,于是发明了一个更加难的版本。 首先有一个地图,是一棵由 \(n\) 个顶点,\(n-1\) 条边组成的树。 这…

P4130 [NOI2007] 项链工厂

P4130 [NOI2007] 项链工厂 题目背景 T公司是一家专门生产彩色珠子项链的公司,其生产的项链设计新颖、款式多样、价格适中,广受青年人的喜爱。 最近T公司打算推出一款项链自助生产系统,使用该系统顾客可以自行设计心目中的美丽项链。该项链自助生产系 统包括硬件系统与软件系…

Centos系统nginx自动续约https证书Lets Encrypt

Nginx官网 https://www.nginx-cn.net/ Lets Encrypt官网 https://letsencrypt.org/zh-cn/how-it-works/ 一、安装nginxsudo yum install nginx上面是直接安装到默认位置,如果是通过wget下载,安装在其他目录下,就需要稍微配置下。wget https://nginx.org/download/nginx-1.1…

Stable Diffusion AI绘图教程:从基础到高级,AI绘图一网打尽

在 AI 绘画领域,StableDiffusion 以其强大的功能和丰富的创意表现,成为众多创作者热衷探索的工具。今天,就为大家详细介绍一系列围绕 StableDiffusion 展开的学习资源,涵盖从基础到高阶、从功能解析到实际应用的全方位内容。 一、基础入门篇 kc开篇:“1 - 全面掌握 Stable…

龙哥量化:用deepseek编程要学习的公式编程的基础知识和常用的功能模块

龙哥微信:Long622889代写通达信技术指标、选股公式(通达信,同花顺,东方财富,大智慧,文华,博易,飞狐)代写期货量化策略(TB交易开拓者,文华8,金字塔)我自己在公式编程非常熟练了,但是遇到deepseek的时候,非常惊喜,能理解我的思路, 也能明白我提出的修改思路,真…