贪心算法——小船过河

简介: 贪心算法——小船过河

题意:N个人过河,船每次只能坐两个人,船载每个人过河的所需时间不同t[i],每次过河的时间为船上的人的较慢的那个,问最快的过河时间。(船划过去要有一个人划回来)

20201127151923754.png

#include<iostream>
#include<algorithm>
using namespace std;
int mintime(int t[], int n) {
  sort(t, t + n);
  int sum = 0;
  int i;
  if (n > 2) {
    for (i = n; i > 2; i -= 2) {
      sum += min(t[i - 1] + t[i - 2] + 2 * t[0], 2 * t[1] + t[0] + t[i - 1]);
    }
  } 
  if (i == 2) {
    sum += t[1];
  }
  if (i == 1) {
    sum += t[0];
  }
  return sum;
}
int main() {
  int a[] = { 1,2,3,4 };
  int b[] = { 1,2,99,100 };
  cout << mintime(a, 4)<<endl;
  cout << mintime(b, 4);
}

对结果稍加观察可以发现,该问题选择哪种方案取决于数据的离散程度,当离散程度大的时候(大的特别大,小的特别小)选择二方案最优,当离散程度小的时候,选择一方案最优。

相关文章
|
Ubuntu
ubuntu 换源 阿里源
ubuntu 换源 阿里源
2033 0
|
9月前
|
SQL 关系型数据库 MySQL
MySQL 进行 select 查询时 where 条件中 in 的value数过多却导致无记录返回
MySQL 进行 select 查询时 where 条件中 in 的value数过多返回不符合预期怎么办?会不会遇到bug了?
347 0
|
9月前
|
供应链 监控 数据挖掘
电商API接口:开启供应链管理高效协同与价值提升新通道
电商API接口作为连接电商平台与供应链各环节的关键桥梁,通过实时库存管理、订单自动化、物流追踪、供应商协同等应用,显著提升供应链效率与协同能力,助力企业实现数字化转型与高效运营。
|
JavaScript 前端开发 图形学
WebGL 技术详解
【10月更文挑战第7天】
755 132
|
机器学习/深度学习 算法 数据挖掘
探索机器学习在农业中的应用:从作物预测到精准农业
探索机器学习在农业中的应用:从作物预测到精准农业
|
数据采集 中间件 API
在Scrapy爬虫中应用Crawlera进行反爬虫策略
在Scrapy爬虫中应用Crawlera进行反爬虫策略
|
机器学习/深度学习 数据采集 传感器
智能交通信号:城市交通流的优化
【10月更文挑战第25天】智能交通信号系统通过集成现代信息技术、大数据分析和人工智能技术,实现交通信号动态优化,有效缓解城市交通拥堵,提升交通效率。系统涵盖数据采集、交通状态感知、流量预测、信号控制策略制定及实施优化等环节,已在多城市应用并取得显著效果。未来将向多模态数据融合、深度学习算法应用、区域协同控制和智能交通系统集成方向发展。
线程池设置原则
线程池设置原则
387 5
|
存储 Kubernetes 应用服务中间件
kaniko-在k8s集群中构建容器镜像
kaniko-在k8s集群中构建容器镜像
|
数据采集 JavaScript 网络安全
为什么PHP爬虫抓取失败?解析cURL常见错误原因
豆瓣电影评分是电影市场的重要参考,通过网络爬虫技术可以高效采集评分数据,帮助电影制作和发行方优化策略。本文介绍使用PHP cURL库和代理IP技术抓取豆瓣电影评分的方法,解决反爬机制、网络设置和数据解析等问题,提供详细代码示例和优化建议。
546 0
为什么PHP爬虫抓取失败?解析cURL常见错误原因

热门文章

最新文章