[JOJZ]3855. 【NOIP2014八校联考第3场第1试10.4】选择困难症

来源:互联网 发布:金刚1024控台帕灯编程 编辑:程序博客网 时间:2024/04/28 22:17

Description

又到吃饭时间,Polo面对饭堂里琳(fei)琅(chang)满(keng)目(die)的各种食品,又陷入了痛苦的抉择中:该是吃手(jiao)打肉饼好呢,还是吃豆(cai)角(chong)肉片好呢?嗯……又不是天秤座怎么会酱紫呢?
具体来说,一顿饭由M个不同的部分组成(荤菜,素菜,汤,甜品,饮料等等),Polo要在每个部分中选一种作为今天的午饭。俗话说的好,永远没有免费的午餐,每种选择都需要有一定的花费。长者常常教导我们,便宜没好货,最便宜的选择估计比较坑爹,可囊中羞涩的Polo还要把钱省下来给某人买生日礼物,这该怎么办呢?
于是一个折中方案出来了:第K便宜的组合要花多少钱?这就要靠你了。

Input

第一行两个数M,K,含义如上所述。
接下来M行,先是一个整数Ai,表示第i个部分有多少种选择。接下来用空格分开的Ai个整数表示每种选择的价格。

Output

一行一个整数表示答案。
【样例解释】
    最便宜的选择是第一部分选择1块钱的,第二部分选择2块的。但由于第二部分里2块钱有两种不同的选择,所以第二便宜的总花费仍然是3块。

Sample Input

2 2
2 1 3
2 2 2

Sample Output

3

Data Constraint






看到题目,发现后面怎么选是不影响前面的, 想设计一个dp,但是发现很难跳开在状态里设总花费。考试的时候一直认为可以有另外的dp状态
可以避开总花费, 但是一直搞也没有弄出来。看题解才意识到这可以用一个贪心解决。dp可以做部分分的题,不一定是正解, 不应该一直把自己
困在dp的范围之内。

Solution:排序之后每次都拓展有可能是次小的状态,扔进堆中,每次选出最小的弹出。
0 0
原创粉丝点击