C++算法-贪心算法入门抽测题目(答案+题目)

今天我给大家出一套C++四级考题

限时3小时,大家加油!!!

题目1:书架

题目描述

为了方便同学们查阅资料,程序设计兴趣小组的辅导老师打算将积攒了很多年的 n 本书放到上课教室的书架上去。

教室的书架是一层一层叠起来的,每一层最多可以放 m 本书。每一层的高度由放在这层中最高的那本书决定的,如果不放书,则认为这层的高度为 0 。为了使每个同学能方便地拿到想要的书,书架的总高度应尽可能低。请编程计算将这 n 本书放在书架上后书架的最小总高度,计算的过程中不考虑书的厚度与书架本身材料的厚度。

输入格式

共 n+1 行。

第 1 行 2 个整数 n 和 m ( 1 ≤ m ≤ n ≤ 100000 ) 。

接下来 n 行, 每行 1 个正整数, 分别表示每本书的高度( 每本书的高度不超过 100 )。

输出格式

一个整数,表示将 n 本书放入书架后书架的最小总高度。

样例

输入数据 1

3 2
20 10 30

输出数据 1

40

样例解释

将高度是 30 和 20 的两本书放在一层,则这层的高度为 30 ,将高度是 10 的那本书放在另外一层,则这层的高度为 10 ,则书架的总高度为 40 ,满足最小。

题目2:礼物

题目描述

国庆马上要到了。小明喜欢的礼物有 n 种分别是:公仔、电子手表、漫画书等。

每种礼物有一件,每种礼物价钱都不一样。小明手头上有 m 元。

小明最多可以买多少件礼物?

输入格式

第一行,两个整数: n , m ( 1 <= n<=100 , 1 <= m <= 100000 )。

第二行, n 个空格分开的整数( 每个整数 <= 1000 ),代表每种礼物的价钱。

输出格式

一个整数,小明能买多少件礼物。

样例

输入数据 1

3 100
40 70 50

输出数据 1

2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值