#1603. USACO 2011 年 11 月比赛 黄金组 Cow Steeplechase
USACO 2011 年 11 月比赛 黄金组 Cow Steeplechase
题目描述
农夫约翰计划在草地上布置 N 条障碍线段(1 ≤ N ≤ 250),每条线段要么水平、要么垂直,且互不平行。
- 水平线段:两个端点的 y 坐标相同,x 坐标不同。
- 垂直线段:两个端点的 x 坐标相同,y 坐标不同。
两条线段**只要有一个公共点(含端点)**即算相交。
已知:
- 所有水平线段之间 两两不相交;
- 所有垂直线段之间 两两不相交。
你的任务:选出最大数量的线段,使得它们两两不相交。
输入格式
- 第 1 行:一个整数
N,表示线段数量。 - 接下来
N行:每行 4 个空格分隔的整数
x1 y1 x2 y2,描述一条线段。- 若
y1 == y2则为水平线段; - 若
x1 == x2则为垂直线段。
- 若
输出格式
- 第 1 行:一个整数,表示最多可选的不相交线段数。
样例
样例输入
3
4 5 10 5
6 2 6 12
8 3 8 5
样例输出
2
样例解释
- 线段 1:(4,5)-(10,5) 水平
- 线段 2:(6,2)-(6,12) 垂直
- 线段 3:(8,3)-(8,5) 垂直
线段 2 与线段 3 互不相交,且均不与线段 1 相交,故可选 {2,3},共 2 条。
数据范围与提示
- 坐标范围:1 ≤ x, y ≤ 1 000 000 000。
- 保证:
- 任意两条水平线段不相交;
- 任意两条垂直线段不相交。