试题详情
- 简答题 在一个操场的四周摆放着n堆石子。现要将石子有次序地合并成一堆。规定每次至少选2堆最多选k堆石子合并成新的一堆,合并的费用为新的一堆的石子数。试设计一个算法,计算出将n堆石子合并成一堆的最大总费用和最小总费用。 输入数据的第1行有2个正整数n和k,表示有n堆石子,每次至少选2堆最多选k堆石子合并。第2行有n个数,分别表示每堆石子的个数。(贪心算法,要求给出贪心策略)
-
最小费用策略:每次选k堆最小的堆合并
排序:5,9,12,13,16,22,45;13,16,22,26,45;26,45,51;122
费用S=(5+9+12)+(13+16+22)+(26+45+51)=26+51+122=199
最大费用策略:每次选2堆最大的堆合并
排序:5,9,12,13,16,22,45;5,9,12,13,16,67;5,9,12,13,83;5,9,12,96;5,9,108;5,117;122
费用T=67+83+96+108+117+122=593 关注下方微信公众号,在线模考后查看
热门试题
- 数据结构与算法里,在C语言中,有以下二维
- Olay教授正在为一家石油公司咨询,该公
- 优先队列插入算法的基本思想是什么?
- 鸡兔同笼问题可以使用for循环嵌套for
- 经典算法之穷举法的优点()
- 整数5和10的最大公约数是()。
- 简单选择排序每趟排序最多只有一次记录交换
- 数据结构中,二叉排序树的()上结点的值都
- 数据结构与算法里,两个数的最大公约数,一
- 设T(n)=n,根据T(n)=O(f(n
- 数据结构与算法里,程序的输出结果不可能是
- 对于下图使用Dijkstra算法求由顶点
- 鸡兔同笼算法属于算法的一种,按照算法的特
- 算法的复杂性有()复杂性和()复杂性之分
- 数据结构与算法里,顺序表的查找分为:顺序
- 在寻找n个元素中第k小元素问题中,若使用
- 下面程序输出结果为()
- 二叉排序的的哪些遍历序列,不能得到一个升
- Prim算法利用()策略求解()问题,其
- break语句可以用于下列那些语法中()