题目名称 | 2578. 激光 |
---|---|
输入输出 | lasers.in/out |
难度等级 | ★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 11 |
题目来源 | mouse 于2016-12-23加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:1, 提交:2, 通过率:50% | ||||
农场主 | 100 | 0.608 s | 161.29 MiB | C++ |
Mealy | 18 | 3.009 s | 0.39 MiB | C++ |
本题关联比赛 | |||
20161223 |
关于 激光 的近10条评论(全部评论) | ||||
---|---|---|---|---|
sro FarmerJohn orz
很惭愧,当时写的时候有点慌,代码太ugly了
农场主
2016-12-23 19:51
2楼
| ||||
sro FarmerJohn orz
很惭愧,当时写的时候有点慌,代码太ugly了
农场主
2016-12-23 19:51
1楼
|
不知道什么原因,农夫John的奶牛们似乎总是热衷于激光秀。
在它们最近的一次秀场中,奶牛们发现了一个强大的激光发射器——它实在是太大了,以至于它们似乎根据不可能轻易地将这台发射器从它的放置地点移动位置。所以它们想要找到一种方法将激光发射器发射出的激光送到位于农场另一边的牛棚中。若将John的农场视作是一张二维地图,则发射器和牛棚的位置都可以看作这个平面图上的两个点。奶牛们计划引导一束激光在水平或者垂直的方向上传输(即沿x轴和y轴传输),然后可以通过在地图上某些点放置一些镜子用于将激光从发射器反射到牛棚。
在农场中有N个篱笆桩(1<=N<=100,000),分布在地图上(区别于激光发射器和牛棚的坐标),奶牛们可以在这些桩上放置镜子。奶牛们可以选择不放置镜子,则激光会沿直线方向传输;如果奶牛们放置了镜子,则镜子会呈45度倾斜旋转,即“/”和“\”,所以可以引导激光从原来水平的方向转变为垂直的方向,或者将垂直转变为水平。
请计算,在保证激光能正确地引导到牛棚的前提下,如何使得所用镜子的数量最少。
第一行有5个由空格分隔开的整数:N,xL,yL,xB,yB,其中(xL,yL)表示激光发射器的坐标,(xB,yB)表示牛棚的所在的坐标,它们的取值范围均在[0..1,000,000,000]。
接下来的N行,每行由两个数字x,y组成,表示可以放置镜子的篱笆桩所在点的坐标,且范围为[0..1,000,000,000]。
可以实现激光从发射器到牛棚所使用的最小数量的镜子,若不可能实现则输出-1。
4 0 0 7 2 3 2 0 2 1 6 3 0
1
在此键入。
在此键入。