18.7.29 luogu P1007 独木桥

题目背景

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

题目描述

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

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

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

输入输出格式

输入格式:

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

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

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

输出格式:

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

输入输出样例

输入样例#1:

4
2
1 3

输出样例#1:

2 4

说明

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

数据范围 N≤L≤5000 。

 1 #include <cstdio>
 2 #include <algorithm>
 3 #include <cstring>
 4 #include <math.h>
 5 #include <iostream>
 6
 7 using namespace std;
 8
 9 int l, n, x[5005];
10
11 int main()
12 {
13     int min0 = 9999,max0=0,ans1=0,ans2=0;
14     scanf("%d%d", &l, &n);
15     for (int i = 1; i <= n; i++)
16     {
17         scanf("%d", &x[i]);
18         min0 = min( l+1 - x[i], x[i]);
19         max0=max(l + 1 - x[i], x[i]);
20         ans1 = max(ans1, min0);
21         ans2 = max(ans2, max0);
22     }
23     printf("%d %d\n", ans1,ans2);
24     return 0;
25 }

-。-||||

原文地址:https://www.cnblogs.com/yalphait/p/9385427.html

时间: 2024-08-27 15:53:19

18.7.29 luogu P1007 独木桥的相关文章

洛谷——P1007 独木桥

P1007 独木桥 题目背景 战争已经进入到紧要时间.你是运输小队长,正在率领运输部队向前线运送物资.运输任务像做题一样的无聊.你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们.士兵们十分愤怒,因为这座独木桥十分狭窄,只能容纳一个人通过.假如有两个人相向而行在桥上相遇,那么他们两个人将无妨绕过对方,只能有一个人回头下桥,让另一个人先通过.但是,可以有多个人同时呆在同一个位置. 题目描述 突然,你收到从指挥部发来的信息,敌军的轰炸机正朝着你所在的独木桥飞来!为

洛谷p1007独木桥

P1007独木桥 题目背景 战争已经进入到紧要时间.你是运输小队长,正在率领运输部队向前线运送物资.运输任务像做题一样的无聊.你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们.士兵们十分愤怒,因为这座独木桥十分狭窄,只能容纳一个人通过.假如有两个人相向而行在桥上相遇,那么他们两个人将无妨绕过对方,只能有一个人回头下桥,让另一个人先通过.但是,可以有多个人同时呆在同一个位置. 题目描述 突然,你收到从指挥部发来的信息,敌军的轰炸机正朝着你所在的独木桥飞来!为了

P1007 独木桥

题目背景 战争已经进入到紧要时间.你是运输小队长,正在率领运输部队向前线运送物资.运输任务像做题一样的无聊.你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们.士兵们十分愤怒,因为这座独木桥十分狭窄,只能容纳一个人通过.假如有两个人相向而行在桥上相遇,那么他们两个人将无妨绕过对方,只能有一个人回头下桥,让另一个人先通过.但是,可以有多个人同时呆在同一个位置. 题目描述 突然,你收到从指挥部发来的信息,敌军的轰炸机正朝着你所在的独木桥飞来!为了安全,你的部队必须

18.7.27 luogu P1005 矩阵取数游戏

题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的 n \times mn×m 的矩阵,矩阵中的每个元素 a_{i,j}ai,j? 均为非负整数.游戏规则如下: 每次取数时须从每行各取走一个元素,共 nn 个.经过 mm 次后取完矩阵内所有元素: 每次取走的各个元素只能是该元素所在行的行首或行尾: 每次取数都有一个得分值,为每行取数的得分之和,每行取数的得分 = 被取走的元素值 \times 2^i×2i ,其中 ii 表示第 ii 次取数(从 11 开始编号): 游戏结束总得分为 mm

18.10.29 躲不开的病毒(AC自动机+dfs)

描述 有若干种病毒,每种病毒的特征代码都是一个01串. 每个程序也都是一个01串. 问是否存在不被病毒感染(不包含任何病毒的特征代码)的无限长的程序. 输入第一行是整数n,表示有n个病毒接下来n行,每行是一个由 0,1构成的字符串,表示一个病毒特征代码所有的病毒的特征代码总长度不超过30000输出如果存在无限长的没有被病毒感染的程序,输出 "TAK",否则输出"NIE" 样例输入 样例1: 2 10 11 样例2: 2 1 0 样例输出 样例1: TAK 样例2:

18.10.29 POJ 3691 DNA repair(AC自动机+dp)

描述 Biologists finally invent techniques of repairing DNA that contains segments causing kinds of inherited diseases. For the sake of simplicity, a DNA is represented as a string containing characters 'A', 'G' , 'C' and 'T'. The repairing techniques a

18.10.29 POJ 3987 Computer Virus on Planet Pandora(AC自动机+字符串处理)

描述 Aliens on planet Pandora also write computer programs like us. Their programs only consist of capital letters (‘A’ to ‘Z’) which they learned from the Earth. On planet Pandora, hackers make computer virus, so they also have anti-virus software. Of

18.10.29 多模式串字符串匹配模板题~AC自动机

描述 给若干个模式串,以及若干个句子,判断每个句子里是否包含模式串. 句子和模式串都由小写字母组成 输入第一行是整数n,表示有n个模式串 ( n <= 1000)接下来n行每行一个模式串.每个模式串长度不超过20接下来一行是整数m,表示有m个句子 (m <= 1000)接下来m行,每行一个句子,每个句子长度不超过1000输出对每个句子,如果包含某个模式串,则输出 YES, 否则输出 NO 样例输入 3 abc def gh 2 abcd ak 样例输出 YES NO 来源 Xu Yewen 1

洛谷 P1007 独木桥

#include<set> #include<map> #include<cmath> #include<queue> #include<cstdio> #include<vector> #include<cstring> #include<cstdlib> #include<iostream> #include<algorithm> using namespace std; int s