BOI 2010 - Lego

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: 3.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Bạn đang dùng các khối Lego để huấn luyện một hệ thống thị giác nhân tạo. Cho hai hình nhìn một mô hình Lego từ hai góc khác nhau, hãy tính số cách xây dựng mô hình đó.

Chỉ có một loại khối Lego với \(2 \times 2\) nút, nhưng có ba màu: trắng (W), xám (G) và đen (B). Số khối mỗi màu là không giới hạn. Bạn dùng một đế vuông có \(6 \times 6\) nút. Các cạnh của mỗi khối phải song song với các cạnh của đế và không khối nào được nhô ra ngoài đế. Mỗi khối đặt phía trên phải tựa lên ít nhất một khối bên dưới.

Hình bên trái là một cách đặt khối lên khối khác hợp lệ. Hình giữa không hợp lệ vì khối phía trên lơ lửng trong không khí. Hình bên phải cũng không hợp lệ vì khối phía trên nhô ra ngoài đế.

Dữ liệu vào

Dòng đầu chứa số nguyên \(H\), là chiều cao của mô hình. Tiếp theo là \(H\) dòng, mỗi dòng có \(6\) ký tự, mô tả hình nhìn từ phía A trong hình minh họa ở ví dụ. Ký tự thứ \(j\) trên dòng thứ \(i\) cho biết những gì nhìn thấy ở cột thứ \(j\) từ trái sang và hàng thứ \(i\) từ trên xuống. Mỗi ký tự là W, G, B hoặc ., lần lượt biểu thị màu trắng, xám, đen hoặc một khoảng trống.

Bạn không thể biết độ sâu từ hình nhìn: màu tại một vị trí có thể thuộc về một khối gần phía trước hoặc xa hơn phía sau, miễn là không có khối khác che khuất tầm nhìn.

Tiếp theo là \(H\) dòng nữa, mô tả hình nhìn khi người quan sát di chuyển quanh mô hình một góc \(90^\circ\) ngược chiều kim đồng hồ, tới phía B trong hình minh họa.

Dữ liệu ra

In một số nguyên là số mô hình Lego khác nhau phù hợp với cả hai hình nhìn. Hai mô hình vẫn được tính riêng ngay cả khi có thể thu được mô hình này bằng cách xoay hoặc lấy đối xứng mô hình kia.

Ràng buộc

  • \(1 \le H \le 6\).
  • Mỗi dòng của mỗi hình nhìn có đúng \(6\) ký tự thuộc tập W, G, B, ..
  • Kết quả luôn biểu diễn được bằng một số nguyên có dấu \(64\) bit.

Ví dụ

Ví dụ 1

Input
2
WWGG..
.BB.WW
.WGG..
WWGG..
Output
6
Giải thích

Một trong các mô hình có thể xây dựng cho ví dụ này:

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: