QOJ.ac

QOJ

時間限制: 3 s 記憶體限制: 256 MB 總分: 100

#3160. 切割

统计

JOI 君喜欢制作纸艺。今天,JOI 君也打算制作一件纸艺作品。 首先,JOI 君根据设计图在 1 张长方形的纸上打印了 $N$ 条切割线。每条切割线都是平行于纸张纵边或横边的线段。 切割后得到的每一部分都将作为作品中的某个零件使用。理所当然地,零件数量越多的作品制作起来越困难。JOI 君想知道,当按照所有切割线将纸张切开后,纸张会被分成多少个部分。

题目描述

给定纸张的大小和 $N$ 条切割线的信息。请编写一个程序,求出按照这些切割线将纸张切开后,纸张会被分成多少个部分。

输入格式

从标准输入读取以下数据:

  • 第 1 行包含三个整数 $W, H, N$,以空格分隔。$W$ 表示纸张的横向边长,$H$ 表示纸张的纵向边长,$N$ 表示切割线的条数。纸张的左下角、右下角、左上角、右上角坐标分别表示为 $(0, 0), (W, 0), (0, H), (W, H)$。
  • 接下来的 $N$ 行中,第 $i$ 行 ($1 \le i \le N$) 包含四个整数 $A_i, B_i, C_i, D_i$ ($0 \le A_i \le C_i \le W, 0 \le B_i \le D_i \le H$),以空格分隔。这表示第 $i$ 条切割线是连接 $(A_i, B_i)$ 和 $(C_i, D_i)$ 的线段。该线段平行于纸张的某条边。也就是说,$A_i = C_i$ 和 $B_i = D_i$ 中恰好有一个成立。此外,任意两条平行的切割线之间没有公共点,且任意切割线与平行的纸张边缘之间也没有公共点。

输出格式

将纸张被分成的部分数量作为一个整数,输出到标准输出中。

数据范围

所有输入数据满足以下条件:

  • $1 \le W \le 1\,000\,000\,000$
  • $1 \le H \le 1\,000\,000\,000$
  • $1 \le N \le 100\,000$

子任务

子任务 1 [5 分] 满足以下条件: $W \le 1\,000$ $H \le 1\,000$ * $N \le 1\,000$

子任务 2 [5 分] 满足以下条件: * $N \le 1\,000$

子任务 3 [20 分] 具有公共点的不同两条切割线的组合数量不超过 $100\,000$。

子任务 4 [20 分] 从切割线上的任意一点出发,都可以沿着若干条切割线到达纸张的边缘。

子任务 5 [50 分] 没有额外限制。

样例

样例输入 1

10 10 5
6 0 6 7
0 6 7 6
2 3 9 3
2 3 2 10
1 9 8 9

样例输出 1

4

说明

对于该输入,切割线如下图所示:

因此,纸张被切割线分成了 4 个部分。注意,该输入满足子任务 4 的条件。

样例输入 2

13 7 28
1 1 4 1
1 1 1 3
2 2 3 2
2 2 2 3
1 3 2 3
3 2 3 6
4 1 4 6
3 6 4 6
5 1 8 1
5 1 5 6
6 2 7 2
6 2 6 5
7 2 7 5
6 5 7 5
8 1 8 6
5 6 8 6
9 1 12 1
9 1 9 2
9 2 10 2
12 1 12 2
11 2 12 2
10 2 10 5
9 5 10 5
9 5 9 6
11 2 11 5
11 5 12 5
12 5 12 6
9 6 12 6

样例输出 2

5

说明

对于该输入,切割线如下图所示:

因此,纸张被切割线分成了 5 个部分。注意,该输入不满足子任务 4 的条件。

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.