题目名称 | 2131. [JLOI 2014]镜面通道 |
---|---|
输入输出 | JLOI_mirror.in/out |
难度等级 | ★★★ |
时间限制 | 5000 ms (5 s) |
内存限制 | 256 MiB |
测试数据 | 20 |
题目来源 | dashgua 于2016-01-07加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:11, 提交:60, 通过率:18.33% | ||||
白&夜 | 100 | 1.774 s | 19.83 MiB | C++ |
zys | 100 | 3.836 s | 5.20 MiB | C++ |
dashgua | 100 | 4.027 s | 46.61 MiB | C++ |
zys | 100 | 4.159 s | 5.20 MiB | C++ |
阿狸 | 100 | 4.199 s | 46.61 MiB | C++ |
XDDD | 100 | 5.437 s | 0.57 MiB | C++ |
Shirry | 100 | 5.664 s | 0.57 MiB | C++ |
stdafx.h | 100 | 6.280 s | 25.49 MiB | C++ |
/k | 100 | 7.161 s | 65.55 MiB | C++ |
神利·代目 | 100 | 7.340 s | 6.14 MiB | C++ |
关于 镜面通道 的近10条评论(全部评论) | ||||
---|---|---|---|---|
竟然还要输出方案…
| ||||
为什么把for循环倒过来写就对了???
| ||||
。。。添加题目好复杂。。。
|
镜面通道
题目背景:
掩体纪元 5 年,星环公司宣布曲率驱动飞船计划,你奉命清理大型激光切割器的镜面通道。
题目描述:
在一个二维平面上,有一个镜面通道,由镜面AC,BD组成,AC,BD长度相等,且都平行于x轴,B位于(0, 0)。
通道中有n个外表面为镜面的光学元件,光学元件α为圆形,光学元件β为矩形(这些元件可以与其他元件和通道有交集,具体看下图)。
光线可以在AB上任一点以任意角度射入通道,光线不会发生削弱。当出现元件与元件,元件和通道刚好接触的情况视为光线无法透过(比如两圆相切)。现在给出通道中所有元件的信息(α元件包括圆心坐标和半径xi,yi,ri,β元件包括左下角和右上角坐标x1,y1,x2,y2)
如上图,S到T便是一条合法线路。
当然,显然存在光线无法透过的情况,现在交给你一个艰巨的任务,请求出至少拿走多少个光学元件后,存在一条光线线路可以从CD射出。
下面举例说明:
现在假设,取走中间那个矩形,那么就可以构造出一条穿过通道的光路,如图中的S到T。
输入格式:
第一行包含两个整数, x , y ,表示C点坐标。
第二行包含一个整数, n ,表示有n个光学元件。
接下来 n 行:
第一个数字 ti 表示这个元件的类型。
如果 ti = 1,表示元件α,后面会有三个整数xi,yi,ri分别表示圆心坐标和半径。
如果 ti = 2,表示元件β,后面会有四个整数x1,y1,x2,y2分别表示左下角和右上角坐标(矩形都平行,垂直于坐标轴)
输出格式:
输出包含两行:
第一行一个整数,至少需要拿走的光学元件个数m。
第二行,接下来 m 个数, 输出要拿走的光学元件的编号。如果有多组方案输出字典序最小的即可。
样例数据:
mirror.in |
mirror.out |
1000 100 6 1 500 0 50 2 10 10 20 100 2 100 10 200 100 2 300 10 400 100 2 500 10 600 100 2 700 0 800 100 |
2 1 6 |
数据范围及约定:
|
N |
ti |
1 |
250 |
1 |
2 |
250 |
1 |
3 |
250 |
1 |
4 |
201 |
1 |
5 |
300 |
1,2 |
6 |
232 |
1,2 |
7 |
90 |
1,2 |
8 |
68 |
1,2 |
9 |
300 |
1,2 |
10 |
300 |
1,2 |
11 |
15 |
2 |
12 |
12 |
2 |
13 |
10 |
2 |
14 |
17 |
2 |
15 |
17 |
1,2 |
16 |
10 |
1,2 |
17 |
300 |
1,2 |
18 |
300 |
1,2 |
19 |
300 |
1,2 |
20 |
300 |
1,2 |
保证给定点的坐标在矩形ABDC内(包括边界)。