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

题解:P11520 [THUPC 2025 初赛] 骑行计划

更差的阅读体验


题目可以形式化一下。

有一个直方图,第 \(i\) 列的高度为 \(a_i\),初始全白。你可以花费 \(c\) 的代价涂黑一个格子,或者花费 \(w_i\) 的代价,涂黑一个宽 \(d_i\)\(t_i\) 的矩形(矩形的下边界要和 \(x\) 轴重合)。求涂黑整个直方图的最小代价。

区间 dp,从上往下做。设 \(f_{x, l, r}\) 表示覆盖第 \(l \sim r\) 列高度 \(> x\) 的部分的最小代价,最终答案为 \(f_{0, 1, n}\)

那么我们可以考虑第 \(l\) 列的状况来转移。

  1. 整列一个点一个点涂黑。

\[f_{x, l, r} \leftarrow f_{x, l+1, r} + \max(a_l - x, 0) \cdot c \]

  1. 在下面框一个矩形。假设 \(g_{d, t}\) 表示可以覆盖 \(d \times t\) 的矩形的 \(w\) 最小的矩形。那么我们可以枚举框出来的矩形的长和宽。

\[f_{x, l, r} \leftarrow f_{j, l, l+i-1} + f_{x, l+i, r} + g_{i, j} \]

复杂度 \(O(n^5)\)

我们发现,第二个转移中 \(f_{j, l, l+i-1} + g_{i, j}\) 这一部分和 \(r\) 无关,而 \(f_{x, l+i, r}\)\(j\) 无关,这启发我们可以把和 \(j\) 有关的东西整理出来,用一个类似后缀最小值的东西优化。

我们直接设 \(h_{l, i, x}\) 表示 \(\min \limits_{j \ge x} f_{j, l, l+i-1} + g_{i, j}\),那么我们就不用枚举 \(j\) 了。所以第二个转移可以变成

\[f_{x, l, r} \leftarrow h_{l, i, x+1} + f_{x, l+i, r} \]

然后这道题就做完了,复杂度 \(O(n^4)\)

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define N 156
using namespace std;
template <typename T> inline void chkmax(T &x,T y){x=x<y?y:x;}
template <typename T> inline void chkmin(T &x,T y){x=x<y?x:y;}
int n,m,c,mx,a[N],w[N],d[N],t[N],g[N][N],f[N][N][N],h[N][N][N];
main()
{scanf("%lld%lld%lld",&n,&m,&c);for(int i=0;i<N;i++)for(int j=0;j<N;j++)for(int k=0;k<N;k++)f[i][j][k]=g[j][k]=h[i][j][k]=1e15;for(int i=1;i<=n;i++)scanf("%lld",&a[i]),chkmax(mx,a[i]);for(int i=1,d,t,w;i<=m;i++)scanf("%lld%lld%lld",&w,&d,&t),chkmin(g[d][t],w);for(int i=n;i;i--)for(int j=mx;j;j--)chkmin(g[i][j],min(g[i+1][j],g[i][j+1]));for(int x=0;x<N;x++)for(int i=0;i<=n;i++)f[x][i+1][i]=0;for(int x=mx;~x;x--)for(int l=n;l;l--){for(int r=l;r<=n;r++){chkmin(f[x][l][r],f[x][l+1][r]+max(0ll,a[l]-x)*c);for(int i=1;i<=r-l+1;i++)chkmin(f[x][l][r],h[l][i][x+1]+f[x][l+i][r]);}for(int i=1;i<=n-l+1;i++)h[l][i][x]=min(f[x][l][l+i-1]+g[i][x],h[l][i][x+1]);}printf("%lld\n",f[0][1][n]);return 0;
}
http://www.jsqmd.com/news/71004/

相关文章:

  • 在IAR Embedded Workbench for Renesas RH850中开发和调试Renesas RH850 MCU
  • 在本地机器上训练和运行斯坦福Alpaca模型指南
  • iOS SwiftUI 动画开发指南 - 教程
  • SpeedAI一键降重降AIGC - 老米_专讲AIGC率
  • Python 学习笔记(02)
  • 内网对抗-隧道技术篇防火墙组策略HTTP反向SSH转发出网穿透CrossC2解决方案 - 实践
  • 2025年酒精行业风向标:高复购无水乙醇定制源头厂家TOP榜,酒精价格点达化工专注行业多年经验,口碑良好 - 品牌推荐师
  • 构建软RAID磁盘阵列 - 详解
  • 2025密度传感器推荐品牌与十大排行榜深度解析——高精度产品全场景应用指南 - 品牌推荐大师1
  • 2025年12月上海真空冲洗设备、门式冲洗设备、水力翻斗设备、智能喷射器、电动限流设备厂家综合评估TOP5 - 2025年11月品牌推荐榜
  • 国内智能物联网功能平台厂家有哪些?品牌有哪些?售后哪家好? - 品牌推荐大师
  • 时序数据库 IoTDB Committer:不用等自己足够强再开始!高质量技术圈子+持续成就感=成长!
  • 2025年油瓶加工厂权威推荐榜单:橄榄油瓶/茶油瓶/香油瓶源头生产厂家精选 - 品牌推荐官
  • 2025实验室规划设计公司哪家好:一站式实验室建设专家——看迅领实验室如何引领行业新标准 - 深度智识库
  • 西南大模型高薪密码:真术相成凭什么成为本土求职者的首选?
  • IntelliJ IDEA 核心常用的代码模板
  • 避坑指南:2025年如何筛选排名前十四的球阀批发商,专业的球阀双达阀门市场认可度高 - 品牌推荐师
  • 2025春熙路火锅人气榜:口碑前十强揭晓,火锅店/重庆火锅/老火锅/特色美食/火锅/美食/川渝火锅火锅品牌选哪家 - 品牌推荐师
  • 2025年高压负氧舱厂权威推荐榜单:家用氧气舱/高压氧单人舱/家用高压氧舱源头厂家精选 - 品牌推荐官
  • 宝宝红屁屁选什么纸尿裤?新手爸妈必看攻略 - 速递信息
  • who always read my posts
  • 2025 年 12 月南京喷砂设备厂家权威推荐榜:喷砂机/喷砂枪/喷砂管/喷砂磨料,专业定制与高效耐磨解决方案深度解析 - 品牌企业推荐师(官方)
  • JS---简写自执行函数的写法
  • 国产超纯水系统/超纯水机哪个品牌牌子好?哪家强?2025年最新品牌推荐厂家排行 - 品牌推荐大师1
  • IAR云就绪平台实现对瑞萨RH850/U2x的全系列支持,赋能新一代汽车电子开发
  • 完整教程:【数据结构】排序详解:从快速排序分区逻辑,到携手冒泡排序的算法效率深度评测
  • 2025年12月上海真空冲洗设备、门式冲洗设备、水力翻斗设备、智能喷射器、电动限流闸设备厂家综合评估与推荐 - 2025年11月品牌推荐榜
  • 省事批处理
  • 2025相控阵探伤设备排名权威榜单,相控阵探伤设备推荐哪个品牌? - 品牌推荐大师1
  • 精选!2025袋式过滤器厂家权威榜单出炉!上海青上凭什么领跑? - 深度智识库