คำอธิบายการท้าทาย
แต้มเป็นเกมที่เล่นกับกระเบื้องที่มีสองค่าบน - หนึ่งด้านซ้ายด้านขวาเช่นหรือ[2|4]
[4|5]
สองแผ่นสามารถรวมเข้าด้วยกันหากพวกเขามีค่าทั่วไป ไพ่สองใบด้านบนสามารถเข้าร่วมได้เช่นนี้:
[2|4][4|5]
เราจะเรียกลำดับของn
กระเบื้องเข้าร่วมห่วงโซ่ยาว n แน่นอนกระเบื้องสามารถหมุนเพื่อให้กระเบื้อง[1|2]
, [1|3]
และ[5|3]
สามารถจัดใหม่เข้าไปในห่วงโซ่[2|1][1|3][3|5]
ของความยาว 3
รับรายการคู่ของจำนวนเต็มกำหนดความยาวของห่วงโซ่ที่ยาวที่สุดที่สามารถเกิดขึ้นได้โดยใช้กระเบื้องเหล่านี้ หากรายการว่างเปล่าคำตอบที่ถูกต้องคือ0
(โปรดทราบว่าคุณสามารถสร้างห่วงโซ่ความยาว1
จากรายการไทล์ที่ไม่ว่างเปล่า)
ตัวอย่างอินพุต / เอาต์พุต
[(0, -1), (1, -1), (0, 3), (3, 0), (3, 1), (-2, -1), (0, -1), (2, -2), (-1, 2), (3, -3)] -> 10
([-1|0][0|-1][-1|2][2|-2][-2|-1][-1|1][1|3][3|0][0|3][3|-3])
[(17, -7), (4, -9), (12, -3), (-17, -17), (14, -10), (-6, 17), (-16, 5), (-3, -16), (-16, 19), (12, -8)] -> 4
([5|-16][-16|-3][-3|12][12|-8])
[(1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1), (1, 1)] -> 7
([1|1][1|1][1|1][1|1][1|1][1|1][1|1])
[(0, 1), (2, 3), (4, 5), (6, 7), (8, 9), (10, 11)] -> 1
(any chain of length 1)
[] -> 0
(no chain can be formed)
O(n!)
ตามที่คุณต้องการ
I guess it's P