#P15183. [SWERC 2021] Circular Maze
[SWERC 2021] Circular Maze
说明
你得到了一组圆形迷宫,正如图中所示。
:::align{center}
:::
你的任务是判断这些迷宫是否可以解决,也就是说,是否存在一条不碰到任何墙壁的路径,可以从迷宫中心一直走到外部。迷宫中的墙壁有 个,它们可以是圆形墙壁或者直线形墙壁。
- 圆形墙壁用半径 (即距离中心的距离)和两个角度 来描述,这两个角度表示墙壁在顺时针方向上的起始角度和终止角度。需要注意的是,互换这两个角度会改变墙壁的位置。
- 直线墙壁用一个角度 (表示墙壁的方向)和两个半径 与 描述,它们表示墙壁的起始半径和终止半径。
角度用度数表示, 度对应于正上方,角度按照顺时针方向增加(因此,正东方向对应90度)。
输入格式
每段输入可以包含多个测试用例。第一行包含一个整数 (),表示测试用例的数量。接下来,是每个测试用例的具体描述。
每个测试用例的第一行包含一个整数 (),表示该迷宫中的墙壁总数量。
然后的 行中,每行描述一个墙壁。描述起始于一个字符:C 代表圆形墙壁,S 代表直线墙壁。后接三个整数:
- 对于圆形墙壁,这三个整数为 (,,且 )。
- 对于直线墙壁,这三个整数为 (,)。
保证所有圆形墙壁不会重叠(但可能在一个或两个点相交),所有直线墙壁也不会重叠(但可能在一个点相交)。然而,圆形墙壁和直线墙壁之间可以随意相交。
输出格式
对于每一个测试用例,如果迷宫可以被成功解决,输出 YES,否则输出 NO。
2
5
C 1 180 90
C 5 250 230
C 10 150 140
C 20 185 180
S 1 20 180
6
C 1 180 90
C 5 250 230
C 10 150 140
C 20 185 180
S 1 20 180
S 5 10 0
YES
NO
提示
两组样例分别对应前文图示。
本翻译由 AI 自动生成
京公网安备 11011102002149号