数据结构与算法刷题记录1

时间:4.28

这是第一次用CSDN来记录自己的学习成果,在此留下纪念,希望自己能够坚持下去,变得更强。

本次学习记录来源于《挑战程序设计竞赛(第2版)》

Ants (POJNo.1852)
题目描述:
n只蚂蚁以每秒1cm的速度在长为Lcm的竿子上爬行。当蚂蚁爬到竿子的端点时就会掉落。由于竿子太细,两只蚂蚁相遇时,它们不能交错通过,只能各自反向爬回去。对于每只蚂蚁,我们知道它距离竿子左端的距离x;,但不知道它当前的朝向。请计算所有蚂蚁落下竿子所需的最短时间和最长时间。

限制条件:
1 ≤ L ≤ 10^6
1 ≤ n ≤ 10^6
0 ≤ xi ≤ L

样例:
输入:
L = 10
n = 3
x = {2, 6, 7}
输出:
min = 4 {左、右、右}
max = 8 {右、右、右}

题目分析:
每只蚂蚁的朝向不确定,而且爬行途中遇到还会同时调转方向,但是可以通过找规律发现,就算两者调转方向也没关系,仍可以视作是没有改变方向,把每只蚂蚁当做是独立的个体,这样问题就变得好解决了。所有蚂蚁落下的最短时间就是找蚂蚁开始位置离杆最近一段的最长距离,把所有蚂蚁遍历一遍即可得到结果。最长时间同理,找蚂蚁距离杆最远一端的最长距离就可以了,这样时间复杂度就被缩减到了O(n),简直就是很爽啊。

参考代码:

#include<bits/stdc++.h>
using namespace std;int main() {int l, n;cin >> l >> n;int x[n];for (int i = 0; i < n; i++) {cin >> x[i];}int minT = 0;for (int i = 0; i < n; i++) {minT = max(minT, min(x[i], l - x[i]));}int maxT = 0;for (int i = 0; i < n; i++) {maxT = max(maxT, max(x[i], l - x[i]));}cout << "min = " << minT << endl;cout << "max = " << maxT;return 0;
}

本次刷题心得:
要学会冷静地分析题目,题目条件看似很复杂,其实细细一想是可以抽象出一个简化模型的。

Ants (POJNo.1852)--数据结构与算法刷题记录相关推荐

  1. 数据结构与算法刷题记录

    数据结构与算法&程序语言 学习物料汇总: leetcode&牛客网 流畅的python 书签&网络搜索 leetcode 数据结构 数组 链表 栈&队列 字符串 算法 ...

  2. 一夜登顶GitHub!字节内网数据结构与算法刷题笔记,看完直呼卧槽

    网络上流传着一句段子"程序员两条腿,一条是算法,一条是英文,想跑的更远,这两条腿都不能弱".英文,我们暂且不谈,我们先来谈谈算法. 算法之难,在于将精巧的逻辑,通过合适的数据结构, ...

  3. DS-1 数据结构和算法刷题

    Author:吾爱北方的母老虎 原创链接:https://blog.csdn.net/weixin_41010198/article/details/80294783 第一题: 给定一个整数数组和一个 ...

  4. python数据结构与算法刷题——剑指offer第二版加部分leetcode题

    说不清楚,只能看代码理解的用红色标出 查找算法:查找较排序来说较简单,不外乎顺序查找和二分查找.哈希表查找和二叉排序树查找.(很多面试官喜欢让应聘者写出二分查找(如test53)的代码)[注意:二分查 ...

  5. python数据结构与算法40题_Python数据结构与算法刷题(2)——挖掘机技术哪家强...

    前言 前文传送门: 正文 为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第1行给出不超过105的正整数N,即参赛人 ...

  6. 算法刷题记录(Day 33)

    Balanced Lineup(poj 3264) 原题链接 题目类型:RMQ.ST表 RMQ视频讲解 RMQ以及ST表 存在的问题: 1.2的幂次应该如何计算->打表 2.log2 x转化为l ...

  7. 算法刷题记录(Day 16)

    棋局评估(csp 201803-4) 题目类型:博弈论.dfs.最大最小搜索 思路一:去模拟下棋,Alice和Bob轮流下棋,每次使用"最优策略"来决定下在哪里. "最优 ...

  8. 算法刷题记录(Day 12)

    Surprising Strings(poj 3096) 原题链接 解题思路:对于每一个D-pair的D值,生成相应的组,并存放在set中,若发现重复,则直接退出,否则代表成功. #include&l ...

  9. leetcode算法刷题记录之罗马数字转整数

    题目描述: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符          数值 I             1 V             5 X             ...

最新文章

  1. 分公司访问列表(ACL)
  2. NLP:自然语言处理技术近十年发展技术更迭的简介、案例之详细攻略(持续更新)
  3. 0523 CSS知识点
  4. java 单元测试_在springboot中写单元测试解决依赖注入和执行后事务回滚问题
  5. Ext JS 4 升级指南
  6. 二十年前的电脑配置单,大家见过吗?
  7. 列表、表格与媒体元素
  8. 语音识别,搜狗的下一个大梦想?
  9. 记一次DNS运维排错
  10. Trustdata:《2018年Q1中国移动互联网行业发展分析报告》
  11. sigar 监控服务器硬件信息
  12. 蓉叶云库——简单介绍seo技术
  13. Pandas数据分析(十年期国债收益率 与 十年期国债期货价格的相关性)
  14. Microsoft-Yahoo: Not Again. Why Again?
  15. linux如何设置默认浏览器,如何从命令行设置默认浏览器?
  16. 网吧WEB、游戏、影视服务器应用需求分析
  17. php 图片处理羽化,ps羽化的作用及羽化的使用方法
  18. 混合模式程序集是针对“v1.1.4322”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。
  19. 如何定位crach问题
  20. 保护Excel表格的4种常用方法

热门文章

  1. 会声会影x7 添加音频特效功能
  2. React 可移动设置时间的课程表组件
  3. 【黄啊码】tp5+微信小程序商城开发教程
  4. sublime text3常用插件+开发vue常用的插件
  5. 大地坐标系转换为地心空间直角坐标系
  6. 关于面试时的自我介绍口述(样版)
  7. prometheus报警配置分类之alertmanager,多webhook地址配置。
  8. 九月腾讯,创新工场,淘宝等公司最新面试三十题(第171-200题) 2011年末
  9. 只需三行代码轻松实现酷炫gif动图转换为mp4视频
  10. 全民飞机大战(java)