首页 > 试题广场 >

漂流船问题

[编程题]漂流船问题
  • 热度指数:8346 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
公司组织团建活动,到某漂流圣地漂流,现有如下情况:
员工各自体重不一,第 i 个人的体重为 people[i],每艘漂流船可以承载的最大重量为 limit。
每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。
为节省开支,麻烦帮忙计算出载到每一个人所需的最小船只数(保证每个人都能被船载)。

输入描述:
第一行输入参与漂流的人员对应的体重数组,

第二行输入漂流船承载的最大重量


输出描述:
所需最小船只数
示例1

输入

1 2
3

输出

1
头像 牛客题解官
发表于 2020-06-05 11:16:38
精华题解 题目难度:二星 考察点:贪心 方法:贪心 1.分析: 因为这个题一定要注意的是每艘船最多可同时载两人这个条件,那么其实我们首先需要要将读入进来的体重数组进行排序,然后我们在采用贪心的算法,将最重的人和最轻的人尽可能的放在一条船上,这样保证得到的船只数是最小的,那么 展开全文
头像 白伟仝
发表于 2020-05-15 11:20:18
import java.util.*; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] s = 展开全文
头像 cchangcs
发表于 2019-07-26 12:55:14
解题思路 对数组array进行排序,使用双指针i和j,分别指向最小值和最大值,若array[i]+array[j]小于limit,则结果result加1,并且i + 1、j - 1;否则若array[j]小于limit,则result加1,并且j - 1,最后返回result 完整代码 展开全文
头像 有赞欢迎你呀~~
发表于 2020-05-07 17:33:35
import java.util.Arrays;import java.util.Scanner; public class 漂流船问题 { public static void main(String[] args) { Scanner sc = new Scanner(Sys 展开全文
头像 StephenL
发表于 2024-01-19 18:12:34
import sys # 公司组织团建活动,到某漂流圣地漂流,现有如下情况: # 员工各自体重不一,第 i 个人的体重为 people[i],每艘漂流船可以承载的最大重量为 limit。 # 每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。 # 为节省开支,麻烦帮忙计算出载到 展开全文
头像 HTwoOTwo
发表于 2022-09-04 20:51:25
贪心:瘦的人找胖的人拼船
头像 牛客409434554号
发表于 2022-01-19 15:00:14
```#include<bits/stdc++.h> using namespace std; int main() { int w,n,sum=0; vector<int> v; while(cin>>w) v.push_back( 展开全文