有N个人想要过一条河,但是他们只有一条最多载两人的船。因此必须想出一个调度船来回的方法让每个人都能过河。每个人都有自己的划船速度,且同一条船上的两个人取决于慢者的速度。你的任务就是想出一个每人都能过河的最快策略。

输入格式:
输入的第一行是一个正整数T(1 <= T <= 20),表示测试用例的组数。下面是T组用例。每个用例的第一行是正整数N,第二行是N个正整数表示每个人的划船速度。每组用例不会超出1000个人,每个人的划船时间不会超过100秒。

输出格式:
对于每个用例,输出所有N个人都能过河的最短时间(秒)。

输入样例:

2
3
1 3 7
4
1 2 5 10

输出样例:

11
17
import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();for (int i = 0; i < n; i++) {int k = sc.nextInt();int Boat[] = new int[k];for (int j = 0; j < Boat.length; j++) {Boat[j] = sc.nextInt();}Arrays.sort(Boat);if (Boat.length == 3) {System.out.println(Boat[0] + Boat[1] + Boat[2]);} else if (Boat.length == 2) {System.out.println(Boat[1]);} else if (Boat.length == 1) {System.out.println(Boat[0]);}else {int sum=0;for (int p= Boat.length-1;p>=0;p-=2){if (p == 2) {sum+=(Boat[0] + Boat[1] + Boat[2]);break;} else if (p == 1) {sum+=Boat[1];break;} else if (p == 0) {sum+=Boat[0];break;}else {int sum1=2*Boat[0]+Boat[p]+Boat[p-1];int sum2=Boat[p]+2* Boat[1]+Boat[0];if(sum1<sum2){sum+=sum1;}else {sum+=sum2;}}}System.out.println(sum);}}}
}

7-1 过河 (15 分)java版相关推荐

  1. 7-1 过河 (15分) Java实现

    有N个人想要过一条河,但是他们只有一条最多载两人的船.因此必须想出一个调度船来回的方法让每个人都能过河.每个人都有自己的划船速度,且同一条船上的两个人取决于慢者的速度.你的任务就是想出一个每人都能过河 ...

  2. 7-1 统计正数和负数的个数然后计算这些数的平均值 (15 分)-java

    7-1 统计正数和负数的个数然后计算这些数的平均值 (15 分) 编写程序,输入未指定个数的整数,判断读入的正数有多少个,读入的负数有多少个,然后计算这些输入值得总和及平均值(不对0计数).当输入为0 ...

  3. L1-016 查验身份证 (15 分)[JAVA]

    L1-016 查验身份证 (15 分) 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4 ...

  4. 7-19 支票面额 (15分)java

    7-19 支票面额 (15分) 一个采购员去银行兑换一张y元f分的支票,结果出纳员错给了f元y分.采购员用去了n分之后才发觉有错,于是清点了余额尚有2y元2f分,问该支票面额是多少? 输入格式: 输入 ...

  5. 【PAT甲级 sc.nextInt()的使用】1008 Elevator (20 分) Java版 9/9通过

    题目 这题已经给了电梯到达每一层的顺序,不需要自己调度电梯. 是个水题. 坑 & 心得 测试用例1 51 88 35 28 15 62 61 78 89 36 58 95 95 28 94 3 ...

  6. 【PAT甲级 替换指定字符】1035 Password (20 分) Java版 4/4通过

    题目 这个题挺简单,意思就是把所有的1替换成@,0替换成%等等 读题要仔细,输出格式方面有几个小坑: 末尾不要有多余的空格.换行 如果替换了,要在第一行输出替换的条数 如果没替换,要把题目给的字符串拼 ...

  7. 【PAT甲级 U形打印】1031 Hello World for U (20 分) Java版 6/6通过

    题目 一开始没看懂"as squared as possible"和那个max不等式到底是什么意思,看了别人的解答才明白: 如果n % 3 == 0,n正好被3整除,直接n1 = ...

  8. 【PAT甲级 十进制转十三进制】1027 Colors in Mars (20 分) Java版 5/5通过

    题目 是个水题,一次通过. 这道题的大意就是:给你输入3个十进制的数,让你转换成3个十三进制数.在转换的时候,注意不足两位的要用0补全两位. 小坑 提交之前,想起来自查一下我的convert(int ...

  9. 【PAT甲级 BigInteger】1019 General Palindromic Number (20 分) Java版 7/7通过

    题目 一开始只使用了Long,有后面四个测试点过不去,后来换了BigInteger,就通过了. 这题用Java的BigInteger做,可以操作任意长度的数字,感觉有一点取巧了. 如果C或者C++的话 ...

最新文章

  1. 【迈克尔・乔丹:人工智能,革命远未发生】
  2. 2020-12-14 Python PyCharm新建项目自动添加介绍和utf-8编码
  3. DTS和PTS的解释(FFMPEG、HLS相关)
  4. Android复习14【高级编程:推荐网址、抠图片上的某一角下来、Bitmap引起的OOM问题、三个绘图工具类详解、画线条、Canvas API详解(平移、旋转、缩放、倾斜)、矩阵详解】
  5. Android之用命令uninstall卸载apk和用 -i 过滤日志忽略大小写
  6. 那些年我们一起写过的Python爬虫
  7. Tokyo cabinet HDB– 初始化
  8. unity3d android assets,Unity3D之Android同步方法读取streamingAssets(八十八)
  9. mysql8 修改密码_Mysql 8新特性之(1):账户与安全更人性化
  10. 简单易扩展的爬虫架构
  11. mysql创建视图注意事项_mysql视图创建注意事项(转)
  12. PLINK-GWAS学习6------数据质控之杂合率质控
  13. 哪些语句在python中非法_下列语句中,在Python中是非法的
  14. 个人免签码支付源码+监控APP【野马资源网】
  15. 类似qq新闻提示窗口样码(cpy)
  16. Nginx配置静态访问txt文件(微信校验文件)
  17. 在word如何显示左侧的索引目录
  18. 【附源码】计算机毕业设计java羽毛球场地管理系统设计与实现
  19. 经典英文爱情电影对白
  20. codeforce 766D Mahmoud and a Dictionary 带权并查集

热门文章

  1. 什么是对称正定矩阵?
  2. setResulttransformer过期NativeQueryImpl,cannot be cast to org.hibernate.query.internal.NativeQueryImpl
  3. TN和STN的液晶屏制作流程以及工艺介绍
  4. C语言 指向函数的指针
  5. supersqli(SQL注入流程及常用SQL语句)
  6. 2022年最新云开发去水印小程序源码
  7. C语言中extern用法详解
  8. 全国计算机考试如何查准考证号
  9. SOA教程之:SOA的优点和缺点
  10. 【排序算法】归并排序(C语言)