得分
score.pas/c/cpp
【故事背景】
众所周知,yk 同学对数学非常痴迷。
又是阳光明媚的一天,yk 同学早早地起了床,又要开始刷数学题啦~
现在yk面前摆着N道数学题,不同的题当然有不同的难度。为了挑战yk 的极
限,他希望越早地做出越难的题目。可是这个题目的完成情况既不能用完成的数
目来衡量,也不能用完成的时间来衡量,所以yk 自己定义了一个计算方法,来
评价这次刷题的完成情况。
【题目描述】
现在yk手上有N道题,他总共有T 的时间来完成他们中的一些或全部。每道题
有一个完成所需时间t[i]和一个难度系数c[i]。如果yk在剩余x个单位时间
的时候开始做题i,并且能够完成,那么总分加上x*c[i]。现在yk要从这N
道题中选出一些在T 个单位时间内完成,并且按照某种顺序依次完成它们 (yk
每个单位时间只能做一道题,并且一旦他决定做某题就会一直做直到做完),那
么他最多能够拿到多少分呢?
【输入格式】
输入score.in总共包括N+1行
第一行,两个用空格隔开的正整数N和T,分别表示题目总数和总时间。
第2到N+1 行,每行包含两个正整数,第i+1行的两个正整数分别表示t[i]
和c[i]
【输出格式】
输出score.out总共包括1行。
一行一个整数,表示最大能够得到的分数。
【样例】
score1.in score1.out
3 10 122
2 1
8 9
2 5
输出解释:最优方案为在剩余10个单位时间的时候开始做第3题(需要2个单
位时间),剩余8个单位时间的时候开始做第2题 (需要8个单位时间),总得
分为10×5+(10-2)×9=122。
score2.in score2.out
3 12 117
3 6
7 5
4 2
score.pas/c/cpp
【故事背景】
众所周知,yk 同学对数学非常痴迷。
又是阳光明媚的一天,yk 同学早早地起了床,又要开始刷数学题啦~
现在yk面前摆着N道数学题,不同的题当然有不同的难度。为了挑战yk 的极
限,他希望越早地做出越难的题目。可是这个题目的完成情况既不能用完成的数
目来衡量,也不能用完成的时间来衡量,所以yk 自己定义了一个计算方法,来
评价这次刷题的完成情况。
【题目描述】
现在yk手上有N道题,他总共有T 的时间来完成他们中的一些或全部。每道题
有一个完成所需时间t[i]和一个难度系数c[i]。如果yk在剩余x个单位时间
的时候开始做题i,并且能够完成,那么总分加上x*c[i]。现在yk要从这N
道题中选出一些在T 个单位时间内完成,并且按照某种顺序依次完成它们 (yk
每个单位时间只能做一道题,并且一旦他决定做某题就会一直做直到做完),那
么他最多能够拿到多少分呢?
【输入格式】
输入score.in总共包括N+1行
第一行,两个用空格隔开的正整数N和T,分别表示题目总数和总时间。
第2到N+1 行,每行包含两个正整数,第i+1行的两个正整数分别表示t[i]
和c[i]
【输出格式】
输出score.out总共包括1行。
一行一个整数,表示最大能够得到的分数。
【样例】
score1.in score1.out
3 10 122
2 1
8 9
2 5
输出解释:最优方案为在剩余10个单位时间的时候开始做第3题(需要2个单
位时间),剩余8个单位时间的时候开始做第2题 (需要8个单位时间),总得
分为10×5+(10-2)×9=122。
score2.in score2.out
3 12 117
3 6
7 5
4 2