洛谷 P1007 独木桥

题目背景

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

题目描述

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

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

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

输入格式

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

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

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

输出格式

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

样例 #1

样例输入 #1

4 2 1 3

样例输出 #1

2 4

提示

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

数据范围 1 ≤ L ≤ 5 × 10^3,0≤ N ≤ 5 × 10^3,数据保证 N ≤ L。

思路

由于两士兵碰头后立刻转身并走动,所以可简化为两士兵碰头后继续向前走,所以可以看做每个士兵都是从自己的初始位置径直走到桥下。

士兵的初始朝向决定了最短时间与最长时间。

碰面:

碰面后:← →

  • 最小时间:这种情况应该从桥的中间来看,右边的士兵向右走,左边的士兵向左走。最后一个士兵下桥的时间为最小时间(最后一个士兵为相对最近桥头距离最远的士兵)

  • 最大时间:这一点画图来看就很好理解,位于桥左半段的士兵都往右走,位于右半段的士兵都往左走,这样尽可能让所有人耗时都最大。那么涉及碰面的问题,士兵碰面以后,原来距较远桥头的距离更小的士兵转身,这样时间最大。

    问题随即就转变成比较最左和最右端士兵分别到最右和最左端的时间,哪一个更大,最大时间便是多少。想象成那个士兵行走方向上遇到的任何士兵,都必须调整到和他同一个方向,最大时间以他为标准。

  • 可优化:直接比较每个士兵的最大最小时间(到两头的时间),择出最大最小(C++)

代码

c语言

#include<stdio.h>
int main() {int x, N, L;int min=0, max=0, temp;scanf("%d%d", &L, &N);for(int i=1; i <= N; i++) {scanf("%d", &x);if(x > (L+1)/2) {if(x > max) max=x;if(L+1-x > min) min=L+1-x;} else {if(x > min) min=x;if(L+1-x > max) max=L+1-x;} }printf("%d %d", min, max);
}

C++

#include <iostream>
using namespace std;
int main(){
int l,n, ansmin=0 , ansmax=0;
cin>>l>>n;
int tmpmin=10000 , tmpmax=0;
for(int i=0;i<n;l++) {
int t;
cin>>t;
tmpmin=min(t,l+1-t);
tmpmax-max(t,l+1-t);
ansmin=max( ansmin, tmpmin);
ansmax=max( ansmax , tmpmax) ;
}
cout<<ansmin<<" "<<ansmax<<endl ;
return 0;
}

洛谷 P1007 独木桥 题解 C语言,C++相关推荐

  1. 洛谷P1007 独木桥 题解

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

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

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

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

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

  4. 洛谷P1007——独木桥 解法 (C++)

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

  5. 洛谷 P1007独木桥 C语言

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

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

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

  7. 洛谷 P1007 独木桥

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

  8. Java实现洛谷 P1007独木桥

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

  9. 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)

    题目要求 P1253题目链接 分析 很像 ~洛谷P1223题题解~,也是一种类似SJF的贪心法. 排个序,由于两个不大于10000的数,乘起来还是int,就使用int属性吧. 数据量小,所以Scann ...

  10. 队列模拟约瑟夫问题(洛谷P1996题题解,Java语言描述)

    题目要求 P1996题目链接 分析 以前就研究过"约瑟夫环"问题: <单循环链表求解约瑟夫环问题(Java语言描述)> <杀人游戏~约瑟夫环(洛谷P1145题题解 ...

最新文章

  1. 零基础自学Python:安装Python、解释器、代码风格等
  2. at命令不生效 linux_帮你精通Linux:简约却不简单的ls命令
  3. 你真会IDEA的调试功能吗?这4个技巧带你起飞!
  4. JavaScript之词法作用域和动态作用域
  5. tf.log()详解
  6. 查看Linus中自带的jdk ,设置JAVA_HOME
  7. ES6新特性之let和const命令
  8. EntityFramework Core进行读写分离最佳实践方式,了解一下?
  9. Java Timestamp Memo
  10. 对一个 复杂的json结果进行取值的例子
  11. 134.加油站(javascript)
  12. 多项logistic回归系数解释_因变量无序多分类资料的logistic回归
  13. 如何在ReactJS中使用FastReport Core Web Report
  14. HTML5的视频格式之争
  15. C语言/ 运算符的优先级以及结合方向
  16. 记一次针对Centos的入侵分析
  17. 8.确保0对于值类型是有效的
  18. 3D视觉(一)三维数学基础教程和SLAM
  19. smartdns 部署最佳实践
  20. Crazy Mother

热门文章

  1. memery leak
  2. Miracast协议
  3. pandas缺失数据处理
  4. 六、向量的夹角公式及R3中平面的一般形式
  5. 【翻译】LearnYouSomeErlangForGreatGood(一):导言
  6. WEP 加密的工作原理和安全缺陷
  7. 关于_CRT_SECURE_NO_WARNINGS与_CRT_SECURE_NO_DEPRECATE
  8. 相似对角化与二次型的标准化联系
  9. 老男孩教育33期周末班-决心书
  10. “初中三年,死磕这一点,英语次次110分以上!”教了一辈子英语的老教师如是说...