[不稳定的传送门]

Sloution

每次试一下最近的2个楼梯或者电梯就行了

Code

#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;int n,m,cl,q,ce,v,l[100010],e[100010],X1,X2,Y1,Y2,Ans,p;
inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}int main(){n=read(),m=read(),cl=read(),ce=read(),v=read();for(int i=1;i<=cl;++i) l[i]=read();for(int i=1;i<=ce;++i) e[i]=read();q=read();while(q--){X1=read(),Y1=read(),X2=read(),Y2=read();Ans=0x7fffffff;if(X1==X2) Ans=fabs(Y1-Y2);else{p=lower_bound(l+1,l+cl+1,Y1)-l;if(p<=cl) Ans=min(Ans,(int)fabs(l[p]-Y1)+(int)fabs(X1-X2)+(int)fabs(l[p]-Y2));if(--p) Ans=min(Ans,(int)fabs(l[p]-Y1)+(int)fabs(X1-X2)+(int)fabs(l[p]-Y2));p=lower_bound(e+1,e+ce+1,Y1)-e;if(p<=ce) Ans=min(Ans,(int)fabs(e[p]-Y1)+((int)fabs(X1-X2)+v-1)/v+(int)fabs(e[p]-Y2));if(--p) Ans=min(Ans,(int)fabs(e[p]-Y1)+((int)fabs(X1-X2)+v-1)/v+(int)fabs(e[p]-Y2));}printf("%d\n",Ans);}
}

转载于:https://www.cnblogs.com/void-f/p/8979071.html

[Codeforces967C]Stairs and Elevators(二分查找)相关推荐

  1. 【Codeforces】925A Stairs and Elevators【贪心】

    [Codeforces]925A Stairs and Elevators [题目大意] 在一个n*m的矩阵里,有clcl个楼梯和cece个电梯,电梯和楼梯可以到任意一层,给出clcl个楼梯的位置和c ...

  2. 算法图解/二分查找/简单查找/选择排序/递归算法/快速排序算法/

    大 O 表示法 大 O 表示法在讨论运行时间时,log 指的都是 log2 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度. 大 O 表示法指出 ...

  3. LeetCode简单题之二分查找

    题目 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1. 示例 1: 输入: n ...

  4. 二分查找模板全面总结

    二分查找 二分法的引入 情形1 1.X的平方根 2.搜索旋转排序数组 情形2 1.第一个错误的版本 2.寻找峰值 3.寻找旋转排序数组中的最小值 情形3 在排序数组中查找第一个和最后一个位置 当遇到查 ...

  5. 数据结构与算法(8-2)有序表查找(折半查找(二分查找)、插值查找)

    目录 一.折半查找(二分查找) 二.插值查找 总代码 一.折半查找(二分查找) 原理:一次次折半,不断向着查找值的位置靠近 . 适用场景:有序(必须) 流程:开始时,min标志首,max标志尾,med ...

  6. 二分查找算法的一点改进

    在计算机科学中,二分查找,是一种在有序数组中查找某一特定元素的搜索算法.这种搜索算法每一次比较都使搜索范围减半.第一篇二分查找的论文发表于1946年,然而第一个没有bug的二分查找算法却是在1962年 ...

  7. 二分法:二分查找(递归+非递归)实现

    二分查找又称折半查找,首先,假设表中元素是按升序排列,将 表中间位置的关键字与查找关键字比较: 如果两者相等,则查找成功; 否则利用中间位置将表分成前.后两个子表: 1)如果中间位置的关键字大于查找关 ...

  8. python数据结构与算法:二分查找

    二分查找:python 实现 def binary_seaech(alist,item):"""二分查找 递归实现"""n = len(al ...

  9. 【C++】C++11 STL算法(四):二分查找法(Binary search operations)、合并操作

    目录 一.lower_bound 1.原型: 2.说明: 3.官方demo 二.upper_bound 1.原型: 2.说明: 3.官方demo 三.binary_search 1.原型: 2.说明: ...

最新文章

  1. vue实现点击那个标题就显示哪个标题的细节
  2. javax.crypto.BadPaddingException: Given final block not properly padded解决方案
  3. LeetCode-剑指 Offer 13. 机器人的运动范围
  4. 云炬随笔20190419
  5. 如何在内核里面查找某些结构体或者宏的定义
  6. 世界首份博客报纸问世
  7. Javascript基础之-原型(prototype)
  8. ECCV 2020 目标检测与跟踪赛事,清华大学主办 GigaVision 2020 欢迎报名~
  9. JavaScript--我所理解的原型链
  10. 策略为王编译错误2:error C1189: #error : MFC does not support
  11. 备份long字段数据
  12. 【虹膜识别】基于matlab GUI形态学虹膜检测【含Matlab源码 959期】
  13. kepware modbus
  14. TypeScript(四)声明文件、全局变量(三斜线指令)、npm包、UMD库、发布声明文件
  15. LeetCode刷题笔记一:(两数之和)
  16. html5时间插件mui,移动端时间控件 HTML5+ 的 pickDate 和 MUI 的 dtpicker 的使用与对比...
  17. java对外接口安全问题_怎么保证对外暴露接口的安全性(调用频率限制)
  18. PX4从放弃到精通(二十七):固定翼姿态控制
  19. 拉里佩奇:专注未来(ted)
  20. ubuntu 20.04 安装ibus-rime输入法

热门文章

  1. NUC980开发板Linux系统EC20模块 移植 串口 PPP拨号
  2. java 异常处理线程_转:Java子线程中的异常处理(通用)
  3. ROS入门笔记(十):编写与测试简单的消息发布器和订阅器(C++)
  4. web sqlite linux,基于嵌入式Linux和Sqlite的Web服务器的研究及应用
  5. 进入环境_大学新生,进入新环境该怎样和舍友、同学相处
  6. linux ssh非交互脚本,sshpass-Linux命令之非交互SSH
  7. oracle 生成 sql语句,Oracle使用SQL语句生成日历的实现方法
  8. 如何在一台没有网的电脑上安装anaconda_简述验证Anaconda是否安装成功的两种方式...
  9. android串口工具apk_【APK】一个强大的Android开发工具!
  10. 用python批量下载网络图片_python批量下载图片的三种方法