【天梯选拔月赛】经典算法之过河问题+(倒水问题--见链接)
题目:
有N个人想要过一条河,但是他们只有一条最多载两人的船。因此必须想出一个调度船来回的方法让每个人都能过河。每个人都有自己的划船速度,且同一条船上的两个人取决于慢者的速度。你的任务就是想出一个每人都能过河的最快策略。
输入格式:
输入的第一行是一个正整数T(1 <= T <= 20),表示测试用例的组数。下面是T组用例。每个用例的第一行是正整数N,第二行是N个正整数表示每个人的划船速度。每组用例不会超出1000个人,每个人的划船时间不会超过100秒。
输出格式:
对于每个用例,输出所有N个人都能过河的最短时间(秒)。
输入样例:
2
3
1 3 7
4
1 2 5 10
输出样例:
11
17
解题思路:
参考:https://www.jianshu.com/p/84608db757b4
两个最快的人送两个最慢的人 所需最短时间 与 一个最快的人送两个最慢的人所需时间比较
最后剩余的人数再分情况讨论
ac代码:
#include <bits/stdc++>
#define maxn 1005
#define inf 2147483648
using namespace std;
typedef long long ll;
int main()
{//freopen("/Users/zhangkanqi/Desktop/11.txt","r",stdin);ll t,n,a[maxn];scanf("%lld",&t);while(t--){ll sum=0,i;scanf("%lld",&n);for(i=0;i<n;i++)scanf("%lld",&a[i]);sort(a,a+n);for( i=n-1;i>2;i-=2){sum+=min((a[0]+a[0]+a[i]+a[i-1]),(a[i]+a[0]+a[1]+a[1]));}if(i==2)//for结束前i为4sum+=(a[0]+a[1]+a[2]);if(i==1)sum+=a[1];//for结束前i为3if(i==0)//只有一个人过河sum=a[0];printf("%lld\n",sum);}return 0;
}
【天梯选拔月赛】经典算法之过河问题+(倒水问题--见链接)相关推荐
- 数据挖掘的一些经典算法
数据挖掘能做以下七种不同事情 (分析方法): 数据挖掘能做以下七种不同事情 · 分类 (Classification) · 估计(Estimation) · 预测(Prediction) · 相关性分 ...
- 经典算法研究系列:二、Dijkstra 算法初探
经典算法研究系列:二.Dijkstra 算法初探 July 二零一一年一月 ====================== 本文主要参考:算法导论 第二版.维基百科. 写的不好之处,还望见谅. 本 ...
- 经典算法书籍推荐以及算法书排行【算法四库全书】
经典算法书籍推荐以及算法书排行[算法四库全书] 作者:霞落满天 https://linuxstyle.blog.csdn.net/ https://blog.csdn.net/21aspne ...
- 经典算法题每日演练——第六题 协同推荐SlopeOne 算法
原文:经典算法题每日演练--第六题 协同推荐SlopeOne 算法 相信大家对如下的Category都很熟悉,很多网站都有类似如下的功能,"商品推荐","猜你喜欢&quo ...
- 白话经典算法系列之七 堆与堆排序
堆排序与高速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法.学习堆排序前,先解说下什么是数据结构中的二叉堆. 二叉堆的定义 二叉堆是全然二叉树或者是近似全然二叉树. 二叉堆满 ...
- 免费技术直播:唐宇迪带你一节课了解机器学习经典算法
常常有小伙伴在后台反馈:机器学习经典算法有哪些? 自学难度大又没有效果,该怎么办? CSDN为了解决这个难题,联合唐宇迪老师为大家带来了一场精彩的直播[一节课掌握机器学习经典算法-线性回归模型].本次 ...
- 一文了解迁移学习经典算法
来源 | linolzhang的CSDN博客 作者 | linolzhang ▌一. 了解迁移学习 迁移学习(Transfer Learning)目标是将从一个环境中学到的知识用来帮助新环境中的学习任 ...
- 调包侠福音!机器学习经典算法开源教程(附参数详解及代码实现)
Datawhale 作者:赵楠.杨开漠.谢文昕.张雨 寄语:本文针对5大机器学习经典算法,梳理了其模型.策略和求解等方面的内容,同时给出了其对应sklearn的参数详解和代码实现,帮助学习者入门和巩固 ...
- 密码学中经典算法及应用
一.加密算法理论基础 1.1 背景 密码学相关安全技术在整个信息技术领域的重要地位无需多言.如果没有现代密码学和信息安全的研究成果,人类社会根本无法进入信息时代. 实际上,密码学和安全领域所涉及的知识 ...
- PMVS:多视图匹配经典算法
导语:Multi-View Stereo(MVS)多视图立体匹配与三维重建的任务是:以已知内外参数的多幅图像(SfM的结果)为输入,重建出真实世界中物体/场景的三维模型. 本文作者提出了PMVS的经典 ...
最新文章
- 最近发现了好多好资源,赶紧收藏一下!【粒子特效】
- jquery的contains如何实现精准匹配
- Win10安装玩Ubuntu19.04后,bios和grub页面都没有Windows启动项,无法进入Windows
- 20165334 《java程序设计》第2周学习总结
- mysql数据库内置函数大全_MySQL数据库——内置函数
- python怎么把数据写进txt_python 如何将数据写入本地txt文本文件的实现方法
- 1984. 学生分数的最小差值
- 第十五节: EF的CodeFirst模式通过DataAnnotations修改默认协定
- 5.spiders(文件夹)
- 字符串匹配——RabinKarp算法
- 《天天数学》连载05:一月五日
- 阿里云数据库8月刊:国内首款Cloud Native自研数据库POLARDB精彩亮相VLDB!
- ShellExecute的各种用法 [转帖于 2009-05-020 21:15]
- Django MySQL 多用户_django使用多个数据库的方法实例
- linux 系统下安装中文输入法
- kali工具 -- setoolkit(克隆网站及利用)
- python能做什么有趣的东西-Python 里itchat 模块能实现什么有趣的东西?
- SpringBoot整合oracle报错异常信息(java.lang.AbstractMethodError: oracle.jdbc.driver.T4CConnection.isValid(I))
- “跨综服”——跨境电商综合服务合规化走向台前
- 云端服务器上传本地项目
热门文章
- 15、三数之和(python)
- 【java与智能设备】CH07_01_Android中的文件存储
- Linux的匿名访问Samba
- 两台200smart以太网通讯_S7-200 SMART PLC之间如何实现以太网通信?(附接线图)
- javascript 数组操作函数
- JS任务栏滚动效果问题
- 防火墙旁挂,策略路由引流
- C#类、方法的访问修饰符
- Android官方开发文档Training系列课程中文版:线程执行操作之定义线程执行代码...
- mybatis同时查询未知个数的表中数据(表名做为参数传递,联合查询union)