USACO 2012 - Cow Steeplechase

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1600 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Farmer John có một ý tưởng xuất sắc cho môn thể thao thu hút khán giả vĩ đại tiếp theo: Cow Steeplechase! Như mọi người đều biết, môn vượt chướng ngại vật thông thường có một nhóm ngựa đua quanh đường chạy đầy các chướng ngại vật mà chúng phải nhảy qua. FJ cho rằng cuộc thi tương tự cũng sẽ phù hợp với những con bò được huấn luyện kỹ càng, miễn là các chướng ngại vật được làm đủ thấp.

Để thiết kế đường đua, FJ vẽ sơ đồ của tất cả \(N\) chướng ngại vật khả dĩ mà ông có thể xây dựng (\(1 \leq N \leq 250\)). Mỗi chướng ngại vật được biểu diễn bởi một đoạn thẳng trên mặt phẳng hai chiều, song song với trục ngang hoặc trục dọc. Chướng ngại vật thứ \(i\) có hai đầu mút phân biệt \((X1_i, Y1_i)\)\((X2_i, Y2_i)\) (\(1 \leq X1_i, Y1_i, X2_i, Y2_i \leq 1\,000\,000\,000\)). Một ví dụ như sau:

   --+-------
-----+-----
  ---+---     |
     |     |  |
   --+-----+--+-   |
     |     |  |  | |
     |   --+--+--+-+-
           |  |  | |
              |

FJ muốn xây dựng nhiều chướng ngại vật nhất có thể, với điều kiện không có hai chướng ngại vật nào giao nhau. Bắt đầu từ sơ đồ trên, FJ có thể xây 7 chướng ngại vật:

   ----------
-----------
  -------     |
           |  |
           |  |    |
           |  |  | |
           |  |  | |
           |  |  | |
              |

Hai đoạn thẳng được coi là giao nhau nếu chúng có chung bất kỳ điểm nào, kể cả một đầu mút của một hoặc cả hai đoạn. FJ chắc chắn rằng không có hai đoạn ngang nào trong sơ đồ đầu vào ban đầu giao nhau; tương tự, không có hai đoạn dọc nào trong sơ đồ đầu vào giao nhau.

Hãy giúp FJ xác định số chướng ngại vật lớn nhất ông có thể xây dựng.

Dữ liệu vào

Dòng đầu tiên chứa một số nguyên \(N\).

Dòng thứ \(i+1\) chứa bốn số nguyên cách nhau bởi dấu cách biểu diễn chướng ngại vật thứ \(i\): \(X1_i\), \(Y1_i\), \(X2_i\)\(Y2_i\), với \(1 \leq i \leq N\).

Dữ liệu ra

In số đoạn thẳng không giao nhau lớn nhất mà FJ có thể chọn.

Ví dụ

Ví dụ 1

Input
3
4 5 10 5
6 2 6 12
8 3 8 5
Output
2
Giải thích

Có ba chướng ngại vật khả dĩ. Chướng ngại vật thứ nhất là đoạn ngang nối \((4, 5)\) với \((10, 5)\); chướng ngại vật thứ hai và thứ ba là các đoạn dọc lần lượt nối \((6, 2)\) với \((6, 12)\)\((8, 3)\) với \((8, 5)\).

Lời giải tối ưu là chọn cả hai đoạn dọc.

Nguồn

USACO 2011 November Contest, Gold Division — Cow Steeplechase. Tác giả đề: Brian Dean.

https://usaco.org/index.php?page=viewproblem2&cpid=93

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: