题目名称 801. [Tyvj 1612] 放置镜子
输入输出 race.in/out
难度等级
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 6
题目来源 Gravatarsywgz 于2012-06-01加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:3, 提交:3, 通过率:100%
GravatarMakazeu 100 0.044 s 0.94 MiB C++
Gravatarrewine 100 0.072 s 66.11 MiB C++
GravatarMakazeu 100 0.074 s 1.88 MiB C++
关于 放置镜子 的近10条评论(全部评论)

801. [Tyvj 1612] 放置镜子

★   输入文件:race.in   输出文件:race.out   简单对比
时间限制:1 s   内存限制:128 MiB

背景 Background 
   百度NOIP吧成功举办了五子棋比赛之后,吧主又准备开始智力比赛 
描述 Description  
   比赛是这样的,有一束光从一个点射入,你可以调整光射入的方向。比赛中可以放置一些镜子来改变光路,使得光通过某一个点,并要求光走过的距离最短。需要注意的是,你必须保证任何时刻光都是沿着正东、正西、正南、正北方向走。
看到这个题目,吧友们都说太简单了,于是准备加大难度,只允许在N个地方放置镜子(也可以不放置)。你的任务就是要找到这个最短距离,并输出它。
 
输入格式 Input Format 
   第一行输入一个整数N,表示一共有N个位置可以放置镜子
接下来有N+2行,第2行为起点的坐标,第N+3行是终点的坐标,第3行到第N+2行为可以放置镜子的坐标,坐标均为整数。
 
 输出格式 Output Format 
   只有一行,输出光走过的最短路径,并保留3位小数。如果无论怎么样,都无法到达终点,则输出“NO”.”
【输入样例1】
2
0 0
1 1
0 1
1 -1
【输出样例1】
4.000

【输入样例2】
2
0 0
1 1
0 1
2 2

【输出样例2】
NO

时间限制 Time Limitation 
   各个测试点1s
 
【数据范围】
对于10%的数据 满足N=0
对于30%的数据 满足N<=1
对于60%的数据 满足N<=1000
对于100%的数据 满足N<=100000 所有坐标范围的绝对值<=2*10^9