贪心,我们设时间序列为 \(\{a_i\}\),长度为 \(n\)(先排序 \(\{a_i\}\))。

分类讨论(其中的「\(1\)」「\(2\)」等均指「速度第 \(1\) 人」「速度第 \(2\) 人」):

  • 如果 \(n=2\),那么答案显然是 \(a_2\)。

  • 如果 \(n=3\),那么答案模拟一下知道是 \(a_1+a_2+a_3\)。

  • 如果 \(n>3\),那么考虑先处理后面两个最慢的人:

    • 让 \(1\) 全揽了,答案显然是 \(2a_1+a_n+a_{n-1}\)(\(1\) 还要往回走啊);
    • 让 \(1,2\) 把船运过去,具体步骤「\(1,2\) 过去,\(1\) 回来候补,\(n,n-1\) 回去,\(1\) 带船过去,和 \(2\) 回来」,同理答案是 \(a_1+2a_2+a_n\);

    把这两个取 \(\min\) 即可。

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
const int N=1e6+5;
typedef long long ll;
int n,a[N];
ll solve(int n)
{
if (n==2) return a[2];
if (n==3) return a[1]+a[2]+a[3];
return solve(n-2)+min(a[1]*2+a[n]+a[n-1],a[1]+a[2]*2+a[n]); // 注意递归项 solve(n-2) 要加上
}
int main()
{
// freopen("input.in","r",stdin);
cin>>n;
for (int i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+1+n); cout<<solve(n);
return 0;
}

最新文章

  1. 《理解 ES6》阅读整理:函数(Functions)(八)Tail Call Optimization
  2. linux网络编程 no route to host 解决方案
  3. 使用IntelliJ IDEA 编译开源的机器学习源码--Oryx
  4. SPM paired t-test步骤
  5. java中内部类使用小结
  6. 设计模式之享元模式(FlyWeight)
  7. Echarts - js
  8. [POJ3352]Road Construction(缩点,割边,桥,环)
  9. jbpm3.2中jbpm.jpdl.mysql.sql文件运行报错的问题
  10. wxWidgets学习笔记——在屏幕上画简单的图形和文字
  11. 关于WINDOWS命令
  12. Hibernate-----5、持久化对象
  13. Springboot security cas源码陶冶-ExceptionTranslationFilter
  14. x264源代码简单分析:编码器主干部分-1
  15. 来了,老弟!__二进制部署kubernetes1.11.7集群
  16. android studio application应用打包jar
  17. 意想不到的javascript
  18. Tomcat第一个站点介绍
  19. 常量,变量,a++,++a,+=等
  20. ef 吐糟

热门文章

  1. 结合 Vuex 和 Pinia 做一个适合自己的状态管理 nf-state
  2. 【理论积累】C语言基础理论知识【第一版】
  3. 125_Power BI 中 DAX 的性能测试
  4. 2020级C++实验课-期末机考模拟考题解
  5. Java实现飞机大战游戏
  6. ES6 - promise(3)
  7. Linux版本的项目环境搭建
  8. springboot+layui 整合百度富文本编辑器ueditor入门使用教程(踩过的坑)
  9. 入坑KeePass(三)安全设置完后后留存
  10. DevStream 成为 CNCF Sandbox 项目啦!- 锣鼓喧天、鞭炮齐鸣、红旗招展、忘词了。