题目名称 376. [IOI 2002] 任务安排
输入输出 batch.in/out
难度等级 ★★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 Gravatarcqw 于2009-09-16加入
开放分组 全部用户
提交状态
分类标签
动态规划 斜率优化
查看题解 分享题解
通过:121, 提交:237, 通过率:51.05%
GravatarYoungsc 100 0.000 s 0.00 MiB C++
GravatarLGLJ 100 0.000 s 0.00 MiB C++
Gravatar瑆の時間~無盡輪迴·林蔭 100 0.000 s 0.00 MiB C++
GravatarSKG_G 100 0.000 s 0.00 MiB C++
Gravatar┭┮﹏┭┮ 100 0.000 s 0.00 MiB C++
Gravatar小金 100 0.000 s 0.00 MiB C++
GravatarLGLJ 100 0.000 s 0.32 MiB C++
GravatarQwQ 100 0.002 s 0.62 MiB C++
Gravatarmikumikumi 100 0.003 s 0.37 MiB C++
Gravatar再见 100 0.003 s 0.41 MiB C++
本题关联比赛
20090916练习赛
20090916练习赛
20090916练习赛
20090916练习赛
关于 任务安排 的近10条评论(全部评论)
[cogs 2723] 任务安排加强版
GravatarLGLJ
2019-09-27 13:22 6楼
Gravatar‎MistyEye
2016-11-09 07:45 5楼
Gravatar再见
2016-04-13 13:44 4楼
斜率优化居然写跪了两次233
Gravatarmikumikumi
2015-09-09 15:54 3楼
斜率优化,被各种位置关系搞乱了......
时间减反了一步居然还能过几个点,orz....
Gravatar一個人的雨
2015-08-11 15:04 2楼
①1D1D DP优化,O(n^2logn)(是否可能?),O(n^2)
②“倒着来”,O(n^2)
update 20140127:
O(N)的算法已经实现(斜率优化或者类似的东西),但并不是rank1(没错就是0.055s的那个)……因为常数大的一笔……
这道题的英文名就是batch,还有别的译法,诸如“任务分批”,“批量任务管理”
Gravatarcstdio
2014-01-27 17:41 1楼

376. [IOI 2002] 任务安排

★★☆   输入文件:batch.in   输出文件:batch.out   简单对比
时间限制:1 s   内存限制:128 MiB

【题目描述】

有 $N$ 个任务排成一个序列在一台机器上等待完成(顺序不得改变),这 $N$ 个任务被分成若干批,每批包含连续的若干个任务。从时刻 $0$ 开始,任务被分批加工,执行第 $i$ 个任务所需的时间是$T_i$。另外,在每批任务开始前,机器需要 $S$ 的启动时间,故执行一批任务所需的时间是启动时间 $S$ 和每个任务需要时间的总和(同一批任务将在同一时刻完成)。每个任务的费用是它的完成时刻乘以一个费用系数$C_i$。请为机器规划一个分组方案,使得总费用最小。

例如:$S=1$;$T$={$1,3,4,2,1$};$C$={$3,2,3,3,4$}。

如果分组方案是{$1$,$2$}、{$3$}、{$4$,$5$},则各个任务完成时间分别为{$5,5,10,14,14$},费用分别为{$15,10,30,42,56$},总费用就是$153$。

【输入格式】

第一行是$N$;

第二行是$S$;

接下来 $N$ 行,每行有一对数,分别为 $T_i$ 和 $F_i$,表示第$i$个任务单独完成所需的时间是$T_i$及其费用系数$C_i$。

【输出格式】

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

【输入样例】

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

【输出样例】

153

【数据规模】

$60$%的数据,$1<=N<=500,0<=S<=50,1<=T_i,C_i<=100$;

$100$%的数据,$1<=N<=5000,0<=S<=50,1<=T_i,C_i<=100$;

【题目来源】

$IOI$ $2002$

《算法竞赛进阶指南》$CH5A01$