APIO 2016 - Boat

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: 2300 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Dọc bờ bắc sông Hàn có \(N\) trường chèo thuyền, đánh số từ \(1\) đến \(N\) theo thứ tự từ tây sang đông. Mọi thuyền của cùng một trường có cùng màu và không thể phân biệt; thuyền của hai trường khác nhau luôn có màu khác nhau.

Trường \(i\) có thể không gửi thuyền tới lễ hội. Nếu tham gia, trường này được gửi một số nguyên thuyền bất kỳ từ \(a_i\) đến \(b_i\), kể cả hai đầu mút.

Điều kiện quan trọng là: nếu trường \(i\) tham gia, số thuyền trường đó gửi phải lớn hơn số thuyền của mọi trường có chỉ số nhỏ hơn \(i\) đã tham gia.

Hãy đếm số cách các trường có thể gửi thuyền, với điều kiện có ít nhất một trường tham gia. Hai cách khác nhau nếu có một trường gửi số thuyền khác nhau hoặc chỉ tham gia trong một cách.

Dữ liệu vào

  • Dòng đầu chứa số nguyên \(N\).
  • Dòng thứ \(i\) trong \(N\) dòng tiếp theo chứa hai số nguyên \(a_i,b_i\).

Dữ liệu ra

In số cách modulo \(1\,000\,000\,007\).

Ràng buộc

  • \(1\le N\le500\).
  • \(1\le a_i\le b_i\le10^9\).

Ví dụ

Ví dụ 1

Input
2
1 2
2 3
Output
7

Giải thích

Có bốn cách chỉ một trường tham gia và ba cách cả hai trường tham gia, tổng cộng là bảy cách.

Phân nhóm

Nhóm Điểm Ràng buộc bổ sung
1 9 \(N\le500\)\(a_i=b_i\) với mọi \(i\)
2 22 \(N\le100\)\(\sum_{i=1}^{N}(b_i-a_i)\le10^6\)
3 27 \(N\le100\)
4 42 \(N\le500\)

Nguồn

Asia-Pacific Informatics Olympiad 2016, bài Boat.

Tệp

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: