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

P3195 [HNOI2008] 玩具装箱

P3195 [HNOI2008] 玩具装箱

大意

这道题要求将 \(N\) 个物品分成若干连续的段,每段的代价与该段的长度和重量之和有关。求最小的费用。

思路

我们发现其符合四边形不等式,于是我们可以记录决策点,但是依旧是 \(\mathcal{O}(n ^ 2)\) 的,于是,我们发现,决策点是单调不降的,我们可以用二分去找最合适的决策点,然后用线段树维护决策点。

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 50000 + 10;
LL n, L, c[N], sum[N], dp[N], cover[N * 4];
void pushDown(int idx) {if (cover[idx] != -1) {cover[idx << 1] = cover[idx];cover[idx << 1 | 1] = cover[idx];cover[idx] = -1;}
}
void update(int idx, int l, int r, int ql, int qr, int val) {if (ql <= l && r <= qr) {cover[idx] = val;return;}pushDown(idx);int mid = (l + r) >> 1;if (ql <= mid) {update(idx << 1, l, mid, ql, qr, val);}if (qr > mid) {update(idx << 1 | 1, mid + 1, r, ql, qr, val);}
}
int query(int idx, int l, int r, int pos) {if (l == r) {return cover[idx] == -1 ? 0 : cover[idx];}pushDown(idx);int mid = (l + r) >> 1;if (pos <= mid) {return query(idx << 1, l, mid, pos);}return query(idx << 1 | 1, mid + 1, r, pos);
}
LL W(int l, int r) {LL x = L - ((sum[r] - sum[l]) + (LL)(r - l - 1));return x * x;
}
bool check(int mid, int nn) {int u = query(1, 1, n, mid);return(dp[nn] + W(nn, mid)) <= (dp[u] + W(u, mid));
}
int main() {cin >> n >> L;for (int i = 1; i <= n; i++) {cin >> c[i];sum[i] = sum[i - 1] + c[i];}memset(dp, 0x3f, sizeof(dp));memset(cover, -1, sizeof(cover));dp[0] = 0;for(int i = 1;i <= n;i ++){int u = query(1, 1, n, i);dp[i] = dp[u] + W(u, i);int l = i + 1, r = n;while(l < r){int mid = (l + r) >> 1;if(check(mid, i)){r = mid;}else{l = mid + 1;}}if(!check(l, i)) l ++;if(l > n) continue;update(1, 1, n, l, n, i);}cout << dp[n];return 0;
}
http://www.jsqmd.com/news/362620/

相关文章:

  • 题解:AWC 0001
  • 2026牛客寒假算法基础集训营4 题解
  • 2026年评价高的三柱避雷塔公司推荐:监控铁塔、角钢监控塔、角钢避雷塔、道路监控塔、钢管避雷塔、镀锌监控塔架选择指南 - 优质品牌商家
  • AI不是在杀死SaaS,而是在逼传统软件回到它真正值钱的那一层
  • YouTube 文字转语音怎么用?AI 配音提升效率与内容产出的完整指南
  • 2026年江西新工厂规划避坑指南:五大服务商深度评测;江西五大公司排名与常见误区解析 - 孟哥商业圈
  • 只知道WinPE?这款两款Linux PE维护系统,轻松化解Linux运维难题
  • AWC_0001 Beta
  • 2026考研失利求职季:如何告别“简历海投”,打造冲刺offer的完美简历?
  • 五度易链“产业大脑”架构解析:如何通过数据智能驱动产业升级?
  • HTTP 协议应用指导 - 详解
  • 2026年实测盘点:新工厂规划公司T深度对比解析 - 孟哥商业圈
  • MathCAD许可证与其他软件集成
  • 打工人救星!用 doocs md 写公众号,再也不用反复调格式
  • 拉普拉斯算子与扩散方程
  • Cursor+Claude AI编程 - Cursor简介
  • 【方案实践】公寓租赁项目(十):基于SpringBoot登录管理接口构建
  • 白帽谷歌seo快速排名外链哪里有?真实渠道、方法和避坑全讲清
  • 2026年实测上海新工厂规划精实工业信息技术 - 孟哥商业圈
  • 深入剖析大数据领域的数据清洗需求
  • iOS 开发助手,性能测试、实时日志、应用管理、设备信息查看
  • 3小时搞定万字综述?2026年论文写作工具红黑榜:第一名堪称全能“学术外挂” - 沁言学术
  • 软考一次过的概率大吗?看完通过率分析,你就明白了!
  • 百亿积分泡沫破裂!新一轮“绿色积分”靠什么让用户争相买单?
  • 内存计算技术在大数据分析中的7个关键应用
  • 2026国自然模板大改,无从下笔?
  • 从PLY到3DTiles:GISBox助力三维数据格式转换全流程 - 详解
  • 别学 Prompt 了!AI 原生时代,Context Engineering 才是饭碗
  • AI应用架构师必看:企业智能体系统架构的模型监控策略
  • arm架构能装windows吗?arm架构安装Windows两种方法