有个这么一个最短距离或者最长距离的问题。有n只蚂蚁以每秒钟1cm的速度在Lcm的竿子上爬行。当蚂蚁爬到竿子的端点时就会掉落。由于竿子太细,两只蚂蚁相遇时,他们不能交错通过,只能各自反向爬回去。对于每只蚂蚁,我们知道它距离竿子左端的距离Xi,但不知道他当前的朝向。请计算所有蚂蚁落下竿子所需的最短和最长时间。

限制条件
1 < L < 10^6
1 < n < 10^6
0 < xi < L
输入
L = 10
n = 3
x = {2,6,7}
输出:
min = 4{左,右,右}
max = 8{右,右,右}

首先很容易想到一个穷竭搜索算法,即枚举所有蚂蚁的初试朝向的组合,这可以利用递归函数来实现
每只蚂蚁的初试时间有两种可能,n只蚂蚁就是2x2x2x2…x2 = 2^n中。如果n比较小,这个算法还是可行的,但指数随着N增加而急剧增加。
n n = 1 n = 2 n =10000
2^n 2 4 10 ^ 3010
穷竭搜索的运行时间也会随之增长。一般指数阶的运行时间我们叫指数时间。指数时间的算法无法处理稍大规模的输入。
接下来我们思考比穷竭搜索更高效的算法。首先对于最短时间,看起来所有蚂蚁朝向较近的端点走才会更好。事实上这种情况不会发生在两只蚂蚁相遇的情况,而且也不可能在此更短时间内走道竿子的端点。
接下来,为了思考最长时间的问题,我们思考一下会发生什么。

事实上,可以知道两只蚂蚁相遇后,当他们保持原样交错而错过继续前进也不会考虑任何问题。这样看来可以认为每只蚂蚁是独立运动的,所以要求最长时间,只要求蚂蚁到竿子端点的最大距离就好了。

这样,不论最长时间还是最短时间,都只要对每只蚂蚁检查一次就好了,这是O(n)时间的算法。对于限制条件n<10^6,这个算法是够用的。于是问题的解

L = input()
n = input()
x = input()
def solve():minT = 0for i in range(n):minT = max(minT, min(x[i], L-x[i]))maxT = 0for i in range(n):maxT = max(maxT, max(x[i], L-x[i]))print("%d %d\n", minT, maxT)
solve()

对于穷竭搜索算法优化的思考,以一群蚂蚁在竿子上爬行为例相关推荐

  1. 《挑战程序设计竞赛》学习笔记(二):穷竭搜索

    2.1 穷竭搜索 深度优先搜索 部分和问题 /*************************************************** User name: 寻雾启示wpf Note: ...

  2. 《挑战程序设计竞赛》--初级篇习题POJ部分【穷竭搜索+贪心】

    最近看了<挑战程序设计竞赛>初级篇,这里总结一下部分poj上的练习题,主要涉及方面为: 穷竭搜索 and 贪心算法 具体题目: 简单导航 一.穷竭搜索 二.贪心算法 一.穷竭搜索 穷竭搜索 ...

  3. mysql innodb count_MySQL下INNODB引擎的SELECT COUNT(*)性能优化及思考

    正 文: MySQL下INNODB引擎的SELECT COUNT(*)性能优化及思考 最近有项目有高并发需求,服务器采用负载均衡,数据库采用阿里云的RDS MYSQL,16核64G内存,连接数:160 ...

  4. c语言中穷竭算法,hihocoder#1054 : 滑动解锁(深度优先搜索)

    描述 滑动解锁是智能手机一项常用的功能.你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过的"相邻"的点.这些划过的点所组成的有向折线,如果与预设的折线在图案.方向上 ...

  5. 阿里云视频云编码优化的思考与发现

    简介:阿里云智能视频云 资深技术专家王豪此次作为 LiveVideoStackCon 2021 的讲师,与我们分享其对编码优化的思考与发现. 王豪(天野) 阿里云智能视频云 资深技术专家 2010 年 ...

  6. Unity 蓝湖 关于UI工作流优化的思考(二)

    背景和历史版本在下面这篇博客中查看: Unity & 蓝湖 关于UI工作流优化的思考 最新版本: 本文旨在让不会使用Unity的其他人员在简单了解该工具后,可以帮助研发人员搭建Unity中的U ...

  7. Python实现SSA智能麻雀搜索算法优化支持向量机回归模型(SVR算法)项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取. 1.项目背景 麻雀搜索算法(Sparrow Search Algorithm, ...

  8. 海量数据搜索算法优化(转)

    海量数据搜索算法优化(转) 原文地址 http://www.ad0.cn/netfetch/read.php/1134.htm 海量数据库的应用,如国家的人口管理系统,户籍档案管理系统,在这样的海量数 ...

  9. MATLAB实现基于遗传算法/引力搜索算法优化新安江水文模型

    MATLAB实现基于遗传算法/引力搜索算法优化新安江水文模型 1 新安江模型 1.1 新安江模型结构 1.2 模型参数种类及意义 2 新安江模型优化参数 2.1 蒸散发参数: KC.WUM.WLM.C ...

最新文章

  1. 女朋友啥时候怒了?Keras识别面部表情挽救你的膝盖
  2. 愿能与诸位关心的人及时保持互联
  3. 马斯克涨价推出完全自动驾驶FSD,放话“激光雷达即使免费也不用”
  4. C语言求最大公约数欧几里得Euclid算法(附完整源码)
  5. ubuntu16.04装MatConvNet
  6. 2019我做成的事情
  7. linux 如何解压.exe,linux下解压火狐浏览器压缩包 ./filefox 运行可执行程序报错问题...
  8. PL/0语言编译器扩展 编译原理课程实践(1)
  9. Java/JSP中调用SQL Server存储过程完整示例收藏
  10. eclipse中怎么安装spring插件_安装eclipse中容易遇到的问题
  11. Vijos P1691 输油管道问题【中位数+排序】
  12. easyui三级联动 html,jQuery使用EasyUi实现三级联动下拉框效果实例分享
  13. S5P4418裸机开发(三):运行裸机程序
  14. PDF文件的旋转和保存
  15. word没有显示endnote_word没有endnote加载项 endnote word加载项
  16. ssm毕设项目康健医药公司进销存管理22jao(java+VUE+Mybatis+Maven+Mysql+sprnig)
  17. JAVA+基于微信小程序的校园信息共享平台 毕业设计-附源码211615
  18. N行M列每个位置放Aij个1厘米的正方体,求表面积
  19. MTK的OS是Nucleus
  20. 美学评价:Image Aesthetic Assessment: An Experimental Survey(计算机视觉美学评估综述)

热门文章

  1. UE4 C++ (22)全局变量理解
  2. Vue3视频播放器组件Vue3-video-play入门教程
  3. 毫米波雷达抢占“新窗口期”
  4. 拯救低效率,强烈推荐这4款实用的Windows软件
  5. 多行文字cad提取数据_CAD机械教程之批量数据提取图文详解
  6. 计算机自动维护有用吗,电脑如何关闭自动维护功能?
  7. Science | 人体可以依靠饥饿感来延缓衰老
  8. 分割pdf的办法?看这里就明白了!
  9. SEO关键词工具推荐
  10. 什么是软件精灵?软件精灵功能介绍