c++ - 把最胖的人从重载的飞机上扔下来。

标签 c++ algorithm sorting stl

假设您有一架飞机,但它的燃料不足。除非这架飞机减少 3000 磅的乘客重量,否则它将无法到达下一个机场。为了尽可能多地挽救生命,我们想先把最重的人从飞机上扔下来。

哦,是的,飞机上有数百万人,我们需要一种最佳算法来找到最重的乘客,而不必对整个列表进行排序。

这是我尝试用 C++ 编写代码的代理问题。我想按重量对乘客 list 进行“partial_sort”,但我不知道我需要多少元素。我可以实现自己的“partial_sort”算法(“partial_sort_accumulate_until”),但我想知道是否有更简单的方法可以使用标准 STL。

最佳答案

但是,这对您的代理问题没有帮助:

如果 1,000,000 名乘客减重 3000 磅,则每位乘客必须减掉 (3000/1000000) = 每人 0.003 磅。这可以通过抛弃每一件衬衫、鞋子,甚至可能是指甲剪来实现,从而拯救所有人。这假设在飞机使用更多燃料所需的重量损失增加之前进行有效的收集和抛弃。

实际上,他们不再允许在船上使用指甲刀了,所以已经淘汰了。

关于c++ - 把最胖的人从重载的飞机上扔下来。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7746648/

相关文章:

c# - 桌面应用程序中的数据可视化

c++ - 正在发送数据报,但未收到 + 其他问题

c++ - IPv6 连接错误 WSAEAFNOSUPPORT

c++ - 插入 C++ 映射 STL 容器失败

algorithm - 16 位哈佛机中的冒泡排序

java - 前 K 个频繁元素

c++ - 在非常小的数组中找到最小值

language-agnostic - 随机排序数组

python - 通过一个列表的内容对另一个列表的内容进行排序 (Python)

java - 为什么我的短语查询给我的结果这么少?