题目大意
题目描述
给定二维平面第一象限上的 个弹幕发射器。第 个发射器位于坐标 ,并向四个方向之一发射一条射线(激光):
-
:向上发射
-
:向右发射
-
:向下发射
-
:向左发射
射线的照明路径包含发射器本身所在的位置。题目保证任意两个发射器不会同时在对方的照明路径上。
现在可以在平面上放置障碍物(允许放置在发射器所在的坐标上),只要障碍物位于某条射线上,就能阻挡该射线的照射。求最少需要放置多少个障碍物,才能使得所有 个发射器的照射路径上都至少包含一个障碍物。
输入格式
第一行包含一个整数 (),表示测试用例的数量。
每个测试用例第一行包含一个整数 (),表示发射器的数量。
接下来 行,每行包含三个整数 (,),表示发射器的坐标与发射方向。
保证所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,输出一行一个整数,表示最少需要放置的障碍物数量。
样例输入
1 | 2 |
样例输出
1 | 3 |
样例解释
在第一个测试用例中,有 个发射器。一种最优方案是放置 个障碍物,具体位置如下:
-
在坐标 处放置一个障碍物:该点覆盖了第 束(从 向上)、第 束(从 向右)以及第 束(从 向上)激光。
-
在坐标 处放置一个障碍物:该点覆盖了第 束(从 向下)以及第 束(从 向左)激光。
-
在坐标 处放置一个障碍物:该点覆盖了第 束(从 向左)激光。
该方案共使用了 个障碍物,且可以证明不存在比 更少的放置方案。
思路讲解
AC代码
源代码
1 |