题目名称 3308. 带有截止时间的活动安排
输入输出 activity.in/out
难度等级 ★★
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试数据 10
题目来源 Gravatarsyzhaoss 于2026-02-28加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:0, 提交:0, 通过率:0%
关于 带有截止时间的活动安排 的近10条评论(全部评论)

3308. 带有截止时间的活动安排

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

【题目描述】

给定 $n$ 个任务,每个任务都有一个耗时和截止时间,如果该任务在截止时间前完成了,那么就可以得分,否则会被扣分,计分公式为 $d − x$,其中 $d$ 为某任务的截止时间,$x$ 为该任务的完成时刻。如何安排任务序列,使得最终的得分最高?

【输入格式】

第一行一个整数$n$,表示任务的数量。

接下来$n$行,每行两个整数$p,d$分别表示任务耗时和截至时间。

【输出格式】

一行一个整数,表示最高得分。

【样例输入】

4
4 2
3 5
2 7
4 5

【样例输出】

-10

【样例说明】

按照$3,2,1,4$的顺序安排任务,任务$3$的得分为$5$,任务$2$的得分为$0$,任务$1$的得分为$-7$,任务$4$的得分为$-8$,总得分为$-10$。

【数据范围】

对于$30\%$的数据,$n\leq 10$。

对于$100%$的数据,$n\leq 1000,p\leq 10^5,d\leq 10^8$。