QOJ.ac

QOJ

时间限制: 2.0 s 内存限制: 256 MB 总分: 100 可 Hack ✓

#11548. 画线

统计

Busy Beaver 喜欢在纸上画线。然而,当两条线相交时,他会感到难过。一天晚上,他梦见了一幅由许多射线组成的杰作,且这些射线互不相交。但是,当他醒来时,他只记得射线是从哪里出发的,却不记得它们朝哪个方向延伸!请帮他重现这幅画。

形式化地说,给定平面上的 $N$ 个点,每个点的 $x$ 和 $y$ 坐标均为 $[1, N]$ 范围内的不同整数。每个点被标记为 UD 或 LR。对于每个 UD 点,你必须从该点出发画一条垂直向上或向下的无限长射线。同样,对于每个 LR 点,你必须从该点出发画一条水平向左或向右的无限长射线。

在所有 $2^N$ 种为每个点分配方向的方式中,判断是否存在一种分配方式使得没有两条射线相交,如果存在,输出满足条件的分配方案数,对 $10^9 + 7$ 取模。

为了方便起见,我们保证如果 $x$ 是满足条件的分配方案数且 $x > 0$,则 $x \not\equiv 0 \pmod{10^9 + 7}$。

输入格式

每个测试包含多个测试用例。输入的第一行包含一个整数 $T$ ($1 \le T \le 10^4$),表示测试用例的数量。

每个测试用例的第一行包含一个正整数 $N$ ($1 \le N \le 10^3$),表示点的数量。

接下来的 $N$ 行中,第 $i$ 行包含两个整数 $x_i, y_i$ 和一个字符串 $s_i$,其中 $(x_i, y_i)$ 表示第 $i$ 个点的位置,$s_i \in \{\text{UD}, \text{LR}\}$ 表示该点允许的射线方向。

保证 $x_i$ 是 $[1, N]$ 范围内两两不同的整数,$y_i$ 也同样满足此条件。

保证所有测试用例的 $N$ 之和不超过 $10^4$。

输出格式

对于每个测试用例,输出两行。

第一行输出 “YES” 或 “NO”,表示是否存在满足条件的分配方案。你可以以任何大小写形式输出答案。例如,“yEs”、“yes”、“Yes” 和 “YES” 都会被识别为肯定回答。

第二行输出满足条件的分配方案数,对 $10^9 + 7$ 取模。

子任务

如果你正确回答了 YES/NO,但满足条件的分配方案数计算错误,你将获得每个子任务 50% 的分数。

  • (10 分): $N \le 10$。
  • (40 分): $N \le 100$。
  • (50 分): 无附加限制。

样例

输入 1

3
2
1 1 UD
2 2 UD
2
1 2 UD
2 1 LR
7
1 5 UD
2 3 UD
3 4 LR
4 1 LR
5 7 LR
6 2 UD
7 6 UD

输出 1

YES
4
YES
3
NO
0

说明

在第一个测试用例中,任何 $2^2 = 4$ 种分配方式都不会导致相交。

在第二个测试用例中,如果第一个点被分配为 D,第二个点被分配为 L,则两条射线会在 $(1, 1)$ 处相交。其他 3 种分配方式均可行。

在第三个测试用例中,所有分配方式都会导致至少一次相交。

第二个测试用例的示意图如下:

problem_11548_1.png

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.