Hi
又见面了呀
今天来一道洛谷的题 独木桥
先上个题目传送门(点击蓝字即可观看)
注:该博客已在2020年6月24日更新,更新内容:修复了一些由于字体原因导致的错误

题目背景

战争已经进入到紧要时间。你是运输小队长,正在率领运输部队向前线运送物资。运输任务像做题一样的无聊。你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们。士兵们十分愤怒,因为这座独木桥十分狭窄,只能容纳1个人通过。假如有2个人相向而行在桥上相遇,那么他们2个人将无妨绕过对方,只能有1个人回头下桥,让另一个人先通过。但是,可以有多个人同时呆在同一个位置。

题目描述

突然,你收到从指挥部发来的信息,敌军的轰炸机正朝着你所在的独木桥飞来!为了安全,你的部队必须撤下独木桥。独木桥的长度为L,士兵们只能呆在坐标为整数的地方。所有士兵的速度都为1,但一个士兵某一时刻来到了坐标为0或L+1的位置,他就离开了独木桥。

每个士兵都有一个初始面对的方向,他们会以匀速朝着这个方向行走,中途不会自己改变方向。但是,如果两个士兵面对面相遇,他们无法彼此通过对方,于是就分别转身,继续行走。转身不需要任何的时间。

由于先前的愤怒,你已不能控制你的士兵。甚至,你连每个士兵初始面对的方向都不知道。因此,你想要知道你的部队最少需要多少时间就可能全部撤离独木桥。另外,总部也在安排阻拦敌人的进攻,因此你还需要知道你的部队最多需要多少时间才能全部撤离独木桥。

输入格式

第一行:一个整数L,表示独木桥的长度。桥上的坐标为1…L

第二行:一个整数N,表示初始时留在桥上的士兵数目

第三行:有N个整数,分别表示每个士兵的初始坐标。

输出格式

只有一行,输出2个整数,分别表示部队撤离独木桥的最小时间和最大时间。2个整数由一个空格符分开。

样例

输入 #1
4
2
1 3
输出 #1
2 4

说明/提示

初始时,没有两个士兵同在一个坐标。

数据范围 : N ≤ L ≤ 5000


题目 简洁明了优美易懂 超级繁琐,还很扯淡。。。哪来的轰炸机啊!!!
不过没关系
我来给大家整理整理

要求:

桥的长度为L,有N个士兵,士兵们只能呆在坐标为整数的地方。所有士兵的速度都为1,并作均速运动,但一个士兵来到了坐标为0或L+1的位置,他就离开了桥。

每个士兵都有一个初始面对的方向,中途不会自己改变方向。但是,如果两个士兵面对面相遇,他们无法彼此通过对方,于是就分别转身,继续行走。转身不需要任何的时间。

你不知道每个士兵初始面对的方向,但他们不会一开始就在同一个位置上。你想要知道你的部队最少需要多少时间以及最多需要多少时间才能全部撤离这座桥。

emm
好多了
想必各位都看懂了
那来说思路吧

思路

思路里面有两点很重要

  • 士兵的相遇:掉头分别走 = 穿过彼此
  • 最大和最小:分别是最大的最大和最小的最大

发现吗?
是不是一下就简洁明了了?
是时候 贴代码

代码

该解释的都在注释里了
因为没啥好说的
技巧题

#include<iostream>
using namespace std;
int main(){int n,l,a = 0,b = 0;//a是最小,b是最大cin>>l;cin>>n;for(int i = 1;i <= n;i++){int c;//士兵的坐标cin>>c;a = max(min(l + 1 - c,c),a);//计算当前的最小时间,并持续更新b = max(max(l + 1 - c,c),b);//计算当前的最大时间,并持续更新}cout<<a<<" "<<b;return 0;
}

这道题只要思路对,基本不会错,除非你语法出了问题
各位,我们下次再见!

洛谷P1007——独木桥 解法 (C++)相关推荐

  1. c/c++ 洛谷 P1007 独木桥

    题目链接 洛谷 P1007 独木桥 不想戳的看下图 输入输出.样例.及数据范围 解题思路: 仔细考虑会发现,两个人相遇无论转不转身两个人所走的 总路程 都是一样的,那么时间也都一样,所以我们大可让两个 ...

  2. 洛谷P1007 独木桥(贪心)

    文章目录 题目背景 题目描述 输入格式 输出格式 输入样例 输出样例 说明 分析 AC的C++代码 题目背景 战争已经进入到紧要时间.你是运输小队长,正在率领运输部队向前线运送物资.运输任务像做题一样 ...

  3. 洛谷 P1007 独木桥

    思路:士兵过独木桥,如果两个人相遇后两个人就互换位置,其实我们可以把其抽象出来,我们可以把士兵看成一个透明的人,因为相遇两者就换方向,那和一个人一直往前走没啥区别所以可以抽像出来,最短的时间是所有人中 ...

  4. Java实现洛谷 P1007独木桥

    题目背景 战争已经进入到紧要时间.你是运输小队长,正在率领运输部队向前线运送物资.运输任务像做题一样的无聊.你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们.士兵 ...

  5. 洛谷P1007 独木桥 题解

    题目背景 战争已经进入到紧要时间.你是运输小队长,正在率领运输部队向前线运送物资.运输任务像做题一样的无聊.你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们.士兵 ...

  6. 洛谷 P1007独木桥 C语言

    当两个人相遇的时候,两个人同时掉头,和两个人不掉头,直接互相穿过的时间和步骤是一模一样的.相信答题者想到这里,问题就迎刃而解了. 首先定义一个数组 Add[5001],将所有士兵站的位置按 j=0~1 ...

  7. 试试把OJ题意抽象成物理模型(洛谷P1007题题解,Java语言描述)

    题目要求 P1007题目链接 分析 这题干出的,真有毒... 要是有这种指挥官,也是醉了... 言归正传,这题其实是可以贪心求解的,但我们还可以更加666... 事实上,题干上面那一大篇基本在扯,关键 ...

  8. AC日记——独木桥 洛谷 p1007

    题目背景 战争已经进入到紧要时间.你是运输小队长,正在率领运输部队向前线运送物资.运输任务像做题一样的无聊.你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们.士兵 ...

  9. 洛谷1007——独木桥

    思路:士兵相遇时,虽然改变方向,但从远处看,可以认为他们穿过了对方,继续按原来方向前进,所以只需要考虑每个人撤离的最短和最长时间,即当前位置据桥头和桥尾的距离,然后取最后一个士兵完成撤离的最大和最小时 ...

最新文章

  1. 网站推广专员浅析网站推广期间如何防止关键词出现下降情况?
  2. 一种缘于积木游戏的思维
  3. 【PAT乙级】1093 字符串A+B (20 分)
  4. c++调用cplex求解例子_Java调用cplex求解运输问题
  5. 842. Split Array into Fibonacci Sequence
  6. https开头的网址是什么意思_我想打这个面试官,他给我挖坑,问我:URI中的 “//” 有什么用?...
  7. ZT云流量软件官网响应式HTML模板
  8. navigator工具_推荐!11个令人惊叹的前端开发工具,值得拥有
  9. centos7.6查看什么进程跑的流量_Spark的提交方式有哪些?有什么区别?
  10. MyBatis传入参数为0时条件不生效
  11. 锁失效_关于bigtable中chubby锁失效时的一点思考
  12. vue项目使用i18n插件实现多语言切换功能
  13. Codeforces 918D MADMAX 图上dp 组合游戏
  14. 程序设计第二十二题 空心三角形
  15. 漫步数学分析三十九——隐函数定理
  16. 在几年后,程序员的薪资会一直这么高么?
  17. 基于域名的恶意网站检测
  18. 天啊!中国第一奇人:天天枸杞水,活到256岁!
  19. java日志切割工具_JavaSwing版本的日志文件分割器
  20. Html+css+JavaScript做一个随机点名器

热门文章

  1. Fastreport.Net用户手册:打印Bands
  2. 微信小程序——沉浸式导航栏实现(含iphoneX适配和组件封装)
  3. mysql8找不到bir_beetlsql.adoc
  4. pcie扰码的作用_分享 扰码的作用
  5. 如何构建全球实时音视频云及其海外网络传输优化
  6. 动态壁纸安卓_这款安卓手机动态壁纸也太好看了吧
  7. 西门子PLC1200学习之进制的转换
  8. Drools 规则引擎死循环问题解决
  9. 计算机在物理学中应用论文3000字,大学物理论文3000字
  10. 财路网每日原创推送:区块链技术热下的“冷思考”