2018年2/3月月赛 Day2 石化 题解
题目背景
漫长战斗终于分出胜负了。
“喂,我可没听说非拼成这样才赢得了。”
七道亡国级禁咒,十一把开刃到自毁程度的帕西瓦尔系列,甚至青年本身没资格动用的勇者剑技最终奥义都已经强行祭出。
假如这样还不能将其灭绝,也无计可施了。
「真是惊天动地啊。身为无力的凡人之躯,却能独自使出此等力量吗?实在可怕。不过,看来要发挥那样的力量,实在不可能毫无代价。」
“啪”的一声,青年脚踝前面的部分已经变成粗糙的石块了。
又是好几声脆响重叠在一起,灰色面积开始沿着他的身体往上蔓延扩散,到了膝盖,到了腿,到了腰,还在继续往上。
题目描述
威廉即将在t个单位时间内完全石化,现在他对往事无限怀念,希望尽可能多的想起重要的人。
威廉有n个重要的人,而每个单位时间里他同时只能想一个人。
在此时此刻,回想第i个重要的人有关的事情都要消耗p[i]的时间,且只有时间p[i]完全经过才算确实回想起这个人。
威廉该按什么顺序回想,才能尽可能多的回顾和重要的人经历的事情呢?
输入输出格式
输入格式
第一行,包含两个正整数t,n。
接下来n行,每行包含一个字符串和一个正整数p[i]。其中字符串表示第i个重要的人的姓名。
输出格式
输出按最佳回想顺序能想起的人数。
输入输出样例
输入样例#1:
1 | 5 3 |
输出样例#1:
1 | 2 |
输入样例#2:
1 | 10 5 |
输出样例#2:
1 | 3 |
说明
每个字符串均不超过50个字符。
对于100%的数据,1<=t<=10000000,1<=n<=500000,1<=p[i]<=1000。
通过题目中描述,可知姓名是无用参数,不需保存处理;且仅有时间一种属性,可定性为dp的特例:贪心。当然用dp做也可以得出正解。
贪心做法:
sort之后从小到大开始算。
dp做法:
同背包问题。
代码:
1 |
|