题目名称 2131. [JLOI 2014]镜面通道
输入输出 JLOI_mirror.in/out
难度等级 ★★★
时间限制 5000 ms (5 s)
内存限制 256 MiB
测试数据 20
题目来源 Gravatardashgua 于2016-01-07加入
开放分组 全部用户
提交状态
分类标签
网络流
分享题解
通过:11, 提交:60, 通过率:18.33%
Gravatar白&夜 100 1.774 s 19.83 MiB C++
Gravatarzys 100 3.836 s 5.20 MiB C++
Gravatardashgua 100 4.027 s 46.61 MiB C++
Gravatarzys 100 4.159 s 5.20 MiB C++
Gravatar阿狸 100 4.199 s 46.61 MiB C++
GravatarXDDD 100 5.437 s 0.57 MiB C++
GravatarShirry 100 5.664 s 0.57 MiB C++
Gravatarstdafx.h 100 6.280 s 25.49 MiB C++
Gravatar/k 100 7.161 s 65.55 MiB C++
Gravatar神利·代目 100 7.340 s 6.14 MiB C++
关于 镜面通道 的近10条评论(全部评论)
竟然还要输出方案…
GravatarShirry
2018-04-15 13:24 3楼
为什么把for循环倒过来写就对了???
Gravatarzys
2016-03-13 09:48 2楼
。。。添加题目好复杂。。。
Gravatardashgua
2016-01-08 17:07 1楼

2131. [JLOI 2014]镜面通道

★★★   输入文件:JLOI_mirror.in   输出文件:JLOI_mirror.out   简单对比
时间限制:5 s   内存限制:256 MiB


镜面通道

题目背景:

掩体纪元 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内(包括边界)