M组的形式具有与N建筑物相等高度的建筑物
Form M groups having buildings of equal height from N buildings
我已经得到了n个建筑物的高度。
我必须形成具有相等高度建筑物的大小的组。给出,我可以摧毁高度更高的建筑物,以使其高度等于较小的建筑物。
我必须找到要破坏的最小建筑物数量,以完全形成N/M组。
例如:
n = 8,m = 4
建筑物的高度:6 4 5 1 5 2 3 2
答案:5
我们可以摧毁两座高度5到两个2的建筑物,以形成第一组,然后销毁高度3,4,6至高度1的建筑物,形成第二组,其高度相等1。
。因此,我们形成了4(m)的2(n/m)组。最小要破坏的建筑物数为5。
n = 8,m = 4
建筑物的高度:1 1 1 2 4 4 4 4 4
答案:1
任何人都可以给我一些暗示。
算法
- 将所有高度(增加顺序)放在哈希(例如在stl上的订购地图) - 键为高度,数据作为该高度的频率。
- 对于N/M次,获取FREQ(例如总和)并继续添加。
- 结果= n -sum。
伪代码
arr[] = {6 4 5 1 5 2 3 2}
map<int, int, greater<int>> mp;
for(auto elem : arr)
{
if(data exist)
increase freq
else
insert key with freq as 1.
}
sum = 0
for(i=0 to N/M)
sum += freq of mp[i]
Result = N - sum
相关文章:
- C++:如何根据地形高度更新玩家身高?
- 如何更改QComboBox项目的高度大小?
- 更改高度贴图,使其在 4x4 网格上显示 16 个 hieghtmap
- 我试图用这段代码找到二叉树的高度,但它一直返回 0,有人可以告诉我为什么吗?
- C++:如何计算二叉树中其值模块高度小于 2 的节点数?
- 如何使用 C++ gdal 库将栅格地理从 EGM96 转换为 WGS84 椭球体高度基准面
- 从具有父指针和左子树和右子树高度的树中删除
- 程序输入名称和高度并显示它。我不知道如何显示列表中最高人的姓名和身高
- 我正在尝试创建一个 C++ 贪吃蛇游戏,但我似乎无法绘制第二个高度边框,我该如何解决这个问题?
- 计算树高度的函数
- 尝试创建一个程序来查找非二叉树的高度.最终得到一个很长的循环,没有答案
- 计算BST返回-1的高度混淆
- 使用递归计算一个函数中的高度和大小
- 如何从2D数组为QHeightMapSurfaceDataProxy创建高度图以显示2D傅立叶变换结果
- 接受来自键盘的树节点以确定其高度
- 在 C++ 中使用平展数组语法,崩溃取决于宽度/高度
- 在一行中初始化指针(新uint8_t[高度*宽度*3])
- 在高度模板化的库中进行代码混淆
- ID3DXFont :文本被拉伸,如何获取字体的宽度和高度?
- M组的形式具有与N建筑物相等高度的建筑物