Cho hai hình dạng liền kề của cùng một khu vực, xác định cách tối ưu để chia hình đầu tiên thành số lượng tối thiểu các đoạn liền kề nhau để chúng có thể được sắp xếp lại để tạo thành hình thứ hai. Nói cách khác, tìm số lượng phân đoạn tối thiểu cần thiết có thể tạo thành cả hai hình dạng.
"Tiếp giáp" có nghĩa là mọi ô vuông trong hình có thể được tiếp cận từ bất kỳ ô vuông nào khác bằng cách đi qua các cạnh. Hình dạng và phân khúc được phép có lỗ.
"Sắp xếp lại" có nghĩa là bạn di chuyển các phân khúc xung quanh; bạn có thể dịch, xoay và phản ánh chúng.
Các hình dạng được chứa trên một lưới; nói cách khác, mỗi hình bao gồm một tập hợp các ô vuông đơn vị được nối bởi các góc / cạnh của chúng.
Thông số kỹ thuật đầu vào
Đầu vào sẽ được cung cấp ở một số định dạng hợp lý - danh sách các điểm, mảng chuỗi đại diện cho mỗi lưới, v.v. Bạn cũng có thể lấy kích thước của lưới nếu được yêu cầu. Các lưới sẽ có cùng kích thước và hai hình được đảm bảo có cùng diện tích và diện tích sẽ dương.
Thông số kỹ thuật đầu ra
Đầu ra chỉ nên là một số nguyên dương duy nhất. Lưu ý rằng sẽ luôn có một câu trả lời tích cực vì trong trường hợp xấu nhất, bạn chỉ cần chia các hình dạng thành các N
ô vuông đơn vị.
Ví dụ
Các ví dụ được trình bày dưới dạng lưới với .
biểu thị một phần trống và #
biểu thị một phần của hình dạng.
Trường hợp 1
Đầu vào
.....
.###.
.#.#.
.###.
.....
###..
..#..
..#..
..###
.....
Đầu ra
2
Giải trình
Bạn có thể chia nó thành hai khối hình chữ L gồm 4:
#
###
Trường hợp 2
Đầu vào
#...
##..
.#..
.##.
.##.
####
....
....
Đầu ra
2
Giải trình
Bạn có thể chia các hình dạng như vậy:
A...
AA..
.A.
.BB.
.AA.
BBAA
....
....
Bạn cũng có thể làm:
A...
AA..
.B..
.BB.
.AB.
AABB
....
....
Trường hợp 3
Đầu vào
#....#
######
.####.
.####.
Đầu ra
2
Giải trình
A....B
AAABBB
.ABBB.
.AAAB.
(Trường hợp thử nghiệm này cho thấy sự cần thiết phải xoay / phản chiếu hình dạng để có đầu ra tối ưu)
Trường hợp 4
Đầu vào
.###.
..#..
.##..
.##..
Đầu ra
2
Giải trình
Cho dù bạn chọn các khối như thế nào, việc chọn 2x1 từ hình đầu tiên nhất thiết ngăn không cho hai khối kia được nhóm lại với nhau; do đó, bạn có thể sử dụng một 2x1 và hai 1x1. Tuy nhiên, (cảm ơn @Jonah), bạn có thể chia nó thành hình chữ L 3 khối và một hình vuông duy nhất như vậy:
.AAB.
..A..
.AA..
.BA..