【Codeforces】925A Stairs and Elevators

【题目大意】

在一个n*m的矩阵里,有clcl个楼梯和cece个电梯,电梯和楼梯可以到任意一层,给出clcl个楼梯的位置和cece个电梯的位置,有q次询问每次询问x1,y1,x2,y2,问你从(x1,y1)到(x2,y2)最少需要的时间,电梯的速度为v,其他的移动速度都为1,(x,y)x表示层数,y表示这一层的位置。

【题解】

很简单的贪心,我查了将近2个小时QAQ,还好有同学的帮助,我不会告诉你们是我clcl和cece搞反了QAQ。其实对应每个位置,我们就能O(1)算出答案,我们有两种选择,坐电梯或走楼梯,对于坐电梯或走楼梯还有两种选择,就是走左边最近的还是右边最近的,那么二分定位,直接暴力算出答案。

【代码如下】

#include<cstdio>
#include<cctype>
#include<algorithm>
using namespace std;
int R,C,n,m,V,Q,D[100005],L[100005],ans;
int read(){int ret=0;char ch=getchar();bool f=1;for(;!isdigit(ch);ch=getchar()) f^=!(ch^'-');for(; isdigit(ch);ch=getchar()) ret=(ret<<3)+(ret<<1)+ch-48;return f?ret:-ret;
}
int Fnd_D(int x){int l=0,r=m;while(l<=r){int mid=(r+l)>>1;if(D[mid]<=x&&x<D[mid+1]) return mid;if(D[mid]<=x) l=mid+1;else r=mid-1;}return 0;
}
int Fnd_L(int x){int l=0,r=n;while(l<=r){int mid=(r+l)>>1;if(L[mid]<=x&&x<L[mid+1]) return mid;if(L[mid]<=x) l=mid+1;else r=mid-1;}return 0;
}
int _abs(int x){return x<0?-x:x;}
int main(){
//  freopen("C.in","r",stdin);
//  freopen("C.out","w",stdout);scanf("%d%d%d%d%d",&R,&C,&n,&m,&V);D[m+1]=L[n+1]=2e9;for(int i=1;i<=n;i++) L[i]=read();for(int i=1;i<=m;i++) D[i]=read();sort(D+1,D+1+m);sort(L+1,L+1+n);Q=read();for(int i=1;i<=Q;i++){ans=2e9;int sy=read(),sx=read(),ty=read(),tx=read();//x和y反了一下,个人习惯int j=Fnd_D(sx),k=Fnd_L(sx);if(sy==ty) ans=_abs(sx-tx);else{if(j) ans=min(ans,_abs(sx-D[j])+(_abs(ty-sy)-1)/V+1+_abs(D[j]-tx));if(j<m) ans=min(ans,_abs(sx-D[j+1])+(_abs(ty-sy)-1)/V+1+_abs(D[j+1]-tx));if(k) ans=min(ans,_abs(sx-L[k])+_abs(ty-sy)+_abs(L[k]-tx));if(k<n) ans=min(ans,_abs(sx-L[k+1])+_abs(ty-sy)+_abs(L[k+1]-tx));       }printf("%d\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/XSamsara/p/9030303.html

【Codeforces】925A Stairs and Elevators【贪心】相关推荐

  1. codeforces Gym 100338E Numbers (贪心,实现)

    题目:http://codeforces.com/gym/100338/attachments 贪心,每次枚举10的i次幂,除k后取余数r在用k-r补在10的幂上作为候选答案. #include< ...

  2. 【Codeforces】967C Stairs and Elevators (二分)。

    http://codeforces.com/contest/967/problem/C 从一个地方到另一个地方,可以选择爬楼梯或者坐电梯 ,前提是楼梯或者电梯存在. n 楼层数 m 每一层的房间数 s ...

  3. Codeforces 671E Organizing a Race (贪心、线段树)

    题目链接 https://codeforces.com/contest/671/problem/E 题解 完全不会做--基本是抄lk的代码 ruogu的题解: https://www.luogu.co ...

  4. CodeForces - 1529E Trees of Tranquillity(贪心+线段树)

    题目链接:https://vjudge.net/problem/CodeForces-1529E 题目大意:给出两棵根节点为 111 的树,分别称为 AAA 树和 BBB 树,现在通过两棵树可以构造出 ...

  5. [CodeForces 1603C] Extreme Extension(贪心 + 数论分块优化dp)

    problem CodeForces solution observation1:\text{observation1}:observation1: 对于一个非空子段 [l,r][l,r][l,r], ...

  6. codeforces 416C C. Booking System(贪心)

    题目链接: codeforces 416C 题目大意: 给出n个请求,每个请求包括客人数量和支付金额,再给出m个桌子,包括桌子大小,问如何安排才能最大盈利.给出最大盈利和一个能够最大盈利的方案. 题目 ...

  7. Codeforces 540B School Marks 【贪心构造】

    题目链接:Codeforces 540B School Marks Little Vova studies programming in an elite school. Vova and his c ...

  8. CodeForces 508E Arthur and Brackets 贪心

    题目: E. Arthur and Brackets time limit per test 2 seconds memory limit per test 128 megabytes input s ...

  9. Codeforces 797C Minimal string【贪心】

    题意: 给出了字符串s的内容,字符串t,u初始默认为空,允许做两种操作: 1.把s字符串第一个字符转移到t字符串最后. 2.把t字符串最后一个字符转移到u字符串最后. 最后要求s.t字符串都为空,问u ...

最新文章

  1. Spark技术内幕:Shuffle Read的整体流程
  2. CnPack 使用的组件命名约定
  3. cs4 php,php dreamweaver cs4
  4. 使用geopandas 制作中国疫情地图
  5. mysql slow time_mysql使用slow log
  6. Three.js之渲染器
  7. 进阶的Redis之数据持久化RDB与AOF
  8. 蓝桥杯 ADV-214 算法提高 3-3求圆面积表面积体积
  9. 1078 最小生成树
  10. cad数字签名制作制作_电影制作部门按数字变化
  11. java生成xps文件_Java 将 Excel 转为PDF、图片、html、XPS、XML、CSV
  12. 概念模型向逻辑模型的转换
  13. html绘制波形图,Html5 canvas 绘制心电波形图
  14. 看他如何做到4年2个博士学位,做研究、出书挣钱两不误。
  15. bootstrap-tagsinput操作标签对象,实现从表格中选人和移除
  16. 计算机行知行业英语教材,“三教”改革的先声——《行知行业英语》
  17. 日照喜来登酒店启幕;万豪旗下万枫酒店品牌首次亮相宁波;平湖万怡酒店正式开业 | 全球旅报...
  18. Obsidian中如何创作思维导图Mind-map
  19. 前端websocket和后端传输数据
  20. Excel阅读器NPOI

热门文章

  1. Spring boot admin 升级到2.3.1 遇到的问题总结
  2. python性能分析工具模块_Python Profilers 分析器
  3. 用python写一个自动注册脚本_python实现自动化上线脚本的示例
  4. 【网络拥塞管理和避免(队列调度算法FIFO/SP/RR/WRR/DRR/MDRR/WDRR/WFQ)】
  5. Java指定几个标点符号(或分割)分割字符
  6. 多线程新浪新闻搜索网络爬虫-基于关键字
  7. 设置环境变量的三种方法【转载】
  8. Golang练习题(自己认为比较不错的)
  9. Skywalking-07:OAL原理——解释器实现
  10. java二分查找法视频_078-二分查找算法思路图解