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

《P5785 [SDOI2012] 任务安排》

题目描述

机器上有 n 个需要处理的任务,它们构成了一个序列。这些任务被标号为 1 到 n,因此序列的排列为 1,2,3⋯n。这 n 个任务被分成若干批,每批包含相邻的若干任务。从时刻 0 开始,这些任务被分批加工,第 i 个任务单独完成所需的时间是 Ti​。在每批任务开始前,机器需要启动时间 s,而完成这批任务所需的时间是各个任务需要时间的总和。

注意,同一批任务将在同一时刻完成。每个任务的费用是它的完成时刻乘以一个费用系数 Ci​。

请确定一个分组方案,使得总费用最小。

输入格式

第一行一个整数 n。 第二行一个整数 s。

接下来 n 行,每行有一对整数,分别为 Ti​ 和 Ci​,表示第 i 个任务单独完成所需的时间是 Ti​ 及其费用系数 Ci​。

输出格式

一行,一个整数,表示最小的总费用。

输入输出样例

输入 #1复制

5 1 1 3 3 2 4 3 2 3 1 4

输出 #1复制

153

说明/提示

对于 100% 数据,1≤n≤3×105,1≤s≤28,∣Ti​∣≤28,0≤Ci​≤28。

代码实现:

#include <iostream> #define int long long using namespace std; const int N = 3e5 + 10; int n, s, T[N], C[N]; int sT[N], sC[N], f[N], q[N], tl = 0; signed main() { cin >> n >> s; for (int i = 1; i <= n; i++) { cin >> T[i] >> C[i]; sT[i] = sT[i - 1] + T[i]; sC[i] = sC[i - 1] + C[i]; } for (int i = 1; i <= n; i++) { int l = 0, r = tl; while (l < r) { int m = (l + r) >> 1; if (f[q[m]] - (s + sT[i]) * sC[q[m]] >= f[q[m + 1]] - (s + sT[i]) * sC[q[m + 1]]) { l = m + 1; } else { r = m; } } f[i] = f[q[r]] + s * (sC[n] - sC[q[r]]) + sT[i] * (sC[i] - sC[q[r]]); while (tl && ((f[i] - f[q[tl]]) * (sC[q[tl]] - sC[q[tl - 1]]) <= (f[q[tl]] - f[q[tl - 1]]) * (sC[i] - sC[q[tl]]))) tl--; tl++; q[tl] = i; } cout << f[n] << endl; return 0; }
http://www.jsqmd.com/news/387937/

相关文章:

  • 知识检索增强AI Agent:结合LLM与高效搜索算法
  • TG 专题模拟考试
  • Hadoop与GraphQL:构建高效数据API
  • 掌握AI原生应用领域知识库构建的秘诀
  • 每天 5000W Token 免费白嫖! 国内零门槛接入 Claude Code + Longcat,轻松开启 AI-Agent 生产力!全流程手把手教程
  • 豆包和deepseek可以打广告吗?2026年特色GEO服务商盘点 - 品牌2025
  • [数据结构]主席树/可持久化线段树
  • 信息安全管理与评估广东省2026模块一参考答案
  • 详细介绍:Maven 依赖作用域实战避坑指南
  • 循环同构问题证明
  • 生产环境【OpenCV】(六)滤波器最佳实践与性能优化
  • 春晚魔术代码
  • 在风里,在梦中
  • Flutter三方库适配OpenHarmony【flutter_speech】— 语音识别启动与参数配置
  • Flutter三方库适配OpenHarmony【flutter_speech】— 语音识别停止与取消
  • Zookeeper客户端连接池优化实战
  • AI提示设计实证研究:提示工程架构师的创新思路
  • 企业AI创新场景怎么选?AI应用架构师的5步筛选法(附案例)
  • 春节网络“春运”,你家路由器扛得住吗?
  • 掌握大数据领域数据架构,开启数据新征程
  • 智能AR_VR内容创作平台的高可用架构:架构师如何保证7x24运行?(附容灾方案)
  • ‌智慧校园建设:为中小学生找到普惠与实用的黄金平衡点
  • 人工智能之核心基础 机器学习 第十七章 Scikit-learn工具全解析 - 详解
  • 【网络】AC控制器上AP换新并上线命令笔记##2
  • 2/15
  • 结构调整法降AI:打乱段落顺序真的能降低AI率吗?
  • 为什么手动改了半天AI率还是高?人工改写的局限性分析
  • SpeedAI科研助手和去AIGC、率零对比:哪个降AI效果更好?2026年实测
  • 2026春季毕业生降AI检查清单:答辩前必做的7件事
  • PaperPass AIGC检测没过怎么办?两步搞定降AI