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