关于洛谷P1007最快的方法

P1007 独木桥 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

题目背景

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

题目描述

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

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

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

算法思路

首先,我们要明白一件事情:

某一次行走的时间,一定是其中所用时间最长的人花费的时间

那么,时间最小就代表每个人朝离ta最近的出口走,这个时候不管L有多长,也不会出现相遇,为什么呢?假设有一个人往L+1方向走,那么ta右边的所有人都是往L+1方向走的,速度又相同,不会撞在一起。

ans=max(min(l+1-a,a),ans);

时间最长呢?这个时候绝对会相遇,怎么办呢?我们想想,a与b相遇,a和b分别向各自相反方向行驶,则a的反方向就是b的原方向。a和b撞在一起后,我们把a看成b,b看成a,这样就相当于相遇后不回头,继续走了。

ans=max(max(l+1-a,a),ans);

代码就成这样了,

#include<bits/stdc++.h>
using namespace std;
int n,l,ans1=0,ans2=0;
int main()
{cin>>l>>n;for(int i=1;i<=n;i++){int a;cin>>a;ans1=max(min(l+1-a,a),ans1);ans2=max(max(l+1-a,a),ans2);}cout<<ans1<<' '<<ans2;
}

希望这些对大家有用,三连必回

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/211700.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能仪表板DevExpress Dashboard v23.1 - 支持自定义样式创建

使用DevExpress Analytics Dashboard&#xff0c;再选择合适的UI元素&#xff08;图表、数据透视表、数据卡、计量器、地图和网格&#xff09;&#xff0c;删除相应参数、值和序列的数据字段&#xff0c;就可以轻松地为执行主管和商业用户创建有洞察力、信息丰富的、跨平台和设…

STM32 配置TIM定时中断常用库函数

单片机学习&#xff01; 目录 ​编辑 1. 函数TIM_DeInit 2. 函数TIM_TimeBaseInit 配置时基单元 3. 函数TIM_TimeBaseStructInit 4. 函数TIM_Cmd 运行控制 5. 函数TIM_ITConfig 中断输出控制 6. 时基单元的时钟选择函数 6.1 函数TIM_InternalClockConfig 6.2 函数 TIM…

Configuring environment||ROS2环境配置

Goal: This tutorial will show you how to prepare your ROS 2 environment. Tutorial level: Beginner Time: 5 minutes ROS 2 relies on the notion &#xff08;concept&#xff09;of combining workspaces using the shell environment. “Workspace” is a ROS term …

C++进阶篇8---智能指针

一、引言 为什么需要智能指针&#xff1f; 在上一篇异常中&#xff0c;关于内存释放&#xff0c;我们提到过一个问题---当我们申请资源之后&#xff0c;由于异常的执行&#xff0c;代码可能直接跳过资源的释放语句到达catch&#xff0c;从而造成内存的泄露&#xff0c;对于这种…

C# Winform 日志系统

目录 一、效果 1.刷新日志效果 2.单独日志的分类 3.保存日志的样式 二、概述 三、日志系统API 1.字段 Debug.IsScrolling Debug.Version Debug.LogMaxLen Debug.LogTitle Debug.IsConsoleShowLog 2.方法 Debug.Log(string) Debug.Log(string, params object[]) …

数据结构之内部排序

目录 7-1 直接插入排序 输入格式: 输出格式: 输入样例: 输出样例: 7-2 寻找大富翁 输入格式: 输出格式: 输入样例: 输出样例: 7-3 PAT排名汇总 输入格式: 输出格式: 输入样例: 输出样例: 7-4 点赞狂魔 输入格式&#xff1a; 输出格式&#xff1a; 输入样例&a…

RabbitMQ在国内为什么没有那么流行?

MQ&#xff08;消息队列&#xff09;的世界。MQ&#xff0c;就像是一个巨大的邮局&#xff0c;负责在不同服务或应用间传递消息。它可以帮助我们解耦系统&#xff0c;提高性能&#xff0c;还能做到异步处理和流量削峰。 基本使用 RabbitMQ是一个开源的消息代理和队列服务器&a…

spring boot + uniapp 微信公众号 jsapi 支付

后端支付类 package com.ruoyi.coupon.payment;import com.google.gson.Gson; import com.ruoyi.coupon.payment.dto.PayParamJsapiDto; import com.ruoyi.coupon.payment.dto.RefundParam; import com.ruoyi.coupon.service.ICouponConfigService; import com.wechat.pay.jav…

FFmpeg抽取视频h264数据重定向

根据视频重定向技术解析中的 截获解码视频流的思路&#xff0c;首先需要解决如何输出视频码流的问题。 目前只针对h264码流进行获取&#xff0c;步骤如下&#xff1a; 打开mp4文件并创建一个空文件用于存储H264数据 提取一路视频流资源 循环读取流中所有的包(AVPacket),为…

redis中使用pipeline批量处理请求提升系统性能

在操作数据库时&#xff0c;为了加快程序的执行速度&#xff0c;在新增或更新数据时&#xff0c;可以通过批量提交的方式来减少应用和数据库间的传输次数&#xff1b;在redis中也有这样的技术实现批量处理&#xff0c;也就是管道——Pipeline。它也是通过批量提交数据的方式来实…

线程安全3--wait和notify

文章目录 wait and notify&#xff08;等待通知机制notify补充 wait and notify&#xff08;等待通知机制 引入wait notify就是为了能够从应用层面上&#xff0c;干预到多个不同线程代码的执行顺序&#xff0c;这里说的干预&#xff0c;不是影响系统的线程调度策略&#xff08…

uni-app应用设置 可以根据手机屏幕旋转进行 (横/竖) 屏切换

首先 我们打开项目的 manifest.json 在左侧导航栏中找到 源码视图 然后找到 app-plus 配置 在下面加上 "orientation": [//竖屏正方向"portrait-primary",//竖屏反方向"portrait-secondary",//横屏正方向"landscape-primary",//横屏…

第57天:django学习(六)

模版之过滤器 语法&#xff1a; {{obj|filter__name:param}} 变量名字|过滤器名称&#xff1a;变量 default 如果一个变量是false或者为空&#xff0c;使用给定的默认值。否则&#xff0c;使用变量的值。例如&#xff1a; {{ value|default:"nothing"}} length …

IDEA启动应用时报错:错误: 找不到或无法加载主类 @C:\Users\xxx\AppData\Local\Temp\idea_arg_filexxx

IDEA启动应用时报错&#xff0c;详细错误消息如下&#xff1a; C:\devel\jdk1.8.0_201\bin\java.exe -agentlib:jdwptransportdt_socket,address127.0.0.1:65267,suspendy,servern -XX:TieredStopAtLevel1 -noverify -Dspring.output.ansi.enabledalways -Dcom.sun.management…

基于以太坊的智能合约开发Solidity(事件日志篇)

//声明版本号&#xff08;程序中的版本号要和编译器版本号一致&#xff09; pragma solidity ^0.5.17; //合约 contract EventTest {//状态变量uint public Variable;//构造函数constructor() public{Variable 100;}event ValueChanged(uint newValue); //事件声明event Log(…

ElasticSearch之cat plugins API

命令样例如下&#xff1a; curl -X GET "https://localhost:9200/_cat/plugins?vtrue&pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPHQBEs5*lo7F9"执行结果输出如下&#xff1a; name component version…

class064 Dijkstra算法、分层图最短路【算法】

class064 Dijkstra算法、分层图最短路【算法】 算法讲解064【必备】Dijkstra算法、分层图最短路 code1 743. 网络延迟时间 // Dijkstra算法模版&#xff08;Leetcode&#xff09; // 网络延迟时间 // 有 n 个网络节点&#xff0c;标记为 1 到 n // 给你一个列表 times&…

法律服务网站建设效果如何

律师事务所及法律知识咨询机构等往往是众多人群需求的服务&#xff0c;服务多样化及内容多元化&#xff0c;市场中也有大量品牌&#xff0c;在实际消费服务中大多以本地事务所为主&#xff0c;而线上咨询服务则一般没有区域限制&#xff0c;同行增多及人们知识获取渠道增加&…

C++-引用和指针区别

文章目录 1.变量的组成2.指针2.1 定义2.2 使用指针操作变量2.3 为什么使用指针 3.引用3.1 定义3.2 引用注意事项 4.引用和指针的区别 1.变量的组成 变量的组成&#xff1a;变量地址&#xff0c;变量名&#xff0c;变量值 例&#xff1a; int i 12;2.指针 2.1 定义 指针用于存…

如何为游戏角色3D模型设置纹理贴图

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 当谈到游戏角色的3D模型风格时&#xff0c;有几种不同的风格&#xf…