BOI 2007 - Connected Points

Xem PDF



Tác giả:
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 Thời gian: 5.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Xét một lưới đều gồm \(3 \times N\) điểm. Mỗi điểm có tối đa tám điểm kề như hình dưới đây.

Ta cần đếm số cách khác nhau để nối các điểm thành một đa giác thỏa mãn đồng thời:

  1. Tập đỉnh của đa giác gồm toàn bộ \(3 \times N\) điểm.
  2. Hai đỉnh liên tiếp của đa giác là hai điểm kề nhau trong lưới.
  3. Đa giác đơn, tức là không tự cắt.

Hai đa giác có thể tạo được khi \(N=6\) được minh họa dưới đây.

Hãy tính số đa giác thỏa mãn theo modulo \(1\,000\,000\,000\).

Dữ liệu vào

Dòng duy nhất chứa một số nguyên dương \(N\).

Dữ liệu ra

In ra phần dư của số cách nối các điểm khi chia cho \(1\,000\,000\,000\).

Ràng buộc

\[ N \le 1\,000\,000\,000. \]

Phân nhóm

  • \(30\%\) số phép thử có \(N \le 200\).
  • \(70\%\) số phép thử có \(N \le 100\,000\).

Ví dụ

Ví dụ 1

Input
3
Output
8

Ví dụ 2

Input
4
Output
40

Bình luận (1)

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

Kỳ thi: