1920_算法设计例题:任务时间表问题(贪心)

2022-5-16 18:17| 发布者: Hocassian| 查看: 41| 评论: 0|原作者: 肇庆学院ACM合集

摘要:
C:\Users\Administrator\Downloads\2019-10-12-10-14-3-89504147955400-Problem List-采集的数据-后羿采集器.html

Pro.ID

1920

Title

算法设计例题:任务时间表问题(贪心)

Title链接

http://10.20.2.8/oj/exercise/problem?problem_id=1920

AC

178

Submit

1263

Ratio

14.09%

时间&空间限制

  • Time Limit: 4000/2000 MS (Java/Others)     Memory Limit: 65536/32768 K (Java/Others)
  • 描述

    一个单位时间任务是恰好需要一个单位时间完成的任务。给定一个单位时间任务的有限集S。关于S的一个时间表用于描述S中单位时间任务的执行次序。时间表中第1个任务从时间0开始执行直至时间1结束,第2个任务从时间1开始执行至时间2结束,…,第n个任务从时间n-1开始执行直至时间n结束。具有截止时间和误时惩罚的单位时间任务时间表问题可描述如下。

    (1) n个单位时间任务的集合S = { 1, 2, …, n };

    (2) 任务i的截止时间di,1 ≤ in, 1 ≤ din,即要求任务i在时间di之前结束;

    (3) 任务i的误时惩罚wi,1 ≤ in,即任务i未在时间di之前结束将招致wi的惩罚;若按时完成则无惩罚。

    任务时间表问题要求确定S的一个时间表(最优时间表)使得总误时惩罚达到最小。

    输入

    输入的第一个为测试样例的个数T,接下来有T个测试样例。每个测试样例的第一行是两个整数nn < 10000 ),接下来有n行,每行两个整数dw,表示第i个任务的截止时间和误时惩罚的时间。

    输出

    Description

    一个单位时间任务是恰好需要一个单位时间完成的任务。给定一个单位时间任务的有限集S。关于S的一个时间表用于描述S中单位时间任务的执行次序。时间表中第1个任务从时间0开始执行直至时间1结束,第2个任务从时间1开始执行至时间2结束,…,第n个任务从时间n-1开始执行直至时间n结束。具有截止时间和误时惩罚的单位时间任务时间表问题可描述如下。

    (1) n个单位时间任务的集合S = { 1, 2, …, n };

    (2) 任务i的截止时间di,1 ≤ in, 1 ≤ din,即要求任务i在时间di之前结束;

    (3) 任务i的误时惩罚wi,1 ≤ in,即任务i未在时间di之前结束将招致wi的惩罚;若按时完成则无惩罚。

    任务时间表问题要求确定S的一个时间表(最优时间表)使得总误时惩罚达到最小。

    Input

    输入的第一个为测试样例的个数T,接下来有T个测试样例。每个测试样例的第一行是两个整数nn < 10000 ),接下来有n行,每行两个整数dw,表示第i个任务的截止时间和误时惩罚的时间。

    Output

    对应每个测试样例输出一行,格式为"Case #: t",其中'#'表示第几个测试样例(从1开始计),t表示最优时间表的总误时惩罚时间。

    Sample Input

    1
    7
    4 70
    2 60
    4 50
    3 40
    1 30
    4 20
    6 10

    Sample Output

    Case 1: 50

    Author

    样例输入

    1
    7
    4 70
    2 60
    4 50
    3 40
    1 30
    4 20
    6 10

    样例输出

    Case 1: 50

    提示

    作者


    路过

    雷人

    握手

    鲜花

    鸡蛋

    最新评论

    返回顶部