Trước khi tôi bắt đầu, thử thách này không phải của tôi ban đầu
Tín dụng cho Đại học Waterloo. Điều này xuất phát từ Cuộc thi Điện toán Canada 2016, Vấn đề cao cấp 5. Đây là một liên kết có thể nhấp vào cuộc thi PDF:
http://cemc.uwaterloo.ca/contests/computing/2016/stage%201/seniorEn.pdf
Đây là một liên kết đến trang web:
http://cemc.uwaterloo.ca/contests/past_contests.html
Thử thách
Đưa ra một mảng bao gồm hai giá trị không đổi, xác định cấu hình sau khi n
tiến hóa cho đầu vào số nguyên dương n
. Hai giá trị này đại diện cho một tế bào sống và một tế bào chết. Evolutions hoạt động như thế này:
Sự phát triển!
Sau mỗi lần lặp, một ô còn sống nếu nó có chính xác một hàng xóm còn sống trong lần lặp trước đó. Ít hơn và nó chết vì cô đơn; bất kỳ và nó chết vì quá đông. Vùng lân cận là độc quyền: tức là mỗi ô có hai hàng xóm chứ không phải ba.
Ví dụ, chúng ta hãy xem làm thế nào 1001011010
sẽ phát triển, 1
một tế bào sống và 0
một tế bào chết ở đâu.
(0) 1 0 0 1 0 1 1 0 1 0 (1)
* $ %
Tế bào ở *
có một tế bào chết ở cả hai phía của nó để nó chết vì cô đơn.
Tế bào ở $
có một tế bào sống ở một bên của nó và một tế bào chết ở phía bên kia. Nó trở nên sống động.
Các cel tại %
có một tế bào sống ở cả hai phía của nó để nó chết vì quá đông.
Tiêu chí chiến thắng
Mã ngắn nhất sẽ thắng.
Tôi / O
Đầu vào sẽ là một danh sách các trạng thái ô là hai giá trị nhất quán và một số nguyên biểu thị số lượng đầu vào, ở một số định dạng hợp lý. Đầu ra là một danh sách các trạng thái ô sau số lần lặp được chỉ định.
Các trường hợp thử nghiệm
start, iterations -> end
1001011010, 1000 -> 1100001100
100101011010000, 100 -> 000110101001010
0000000101011000010000010010001111110100110100000100011111111100111101011010100010110000100111111010, 1000 -> 1001111111100010010100000100100100111010010110001011001101010111011011011100110110100000100011011001
Test Case Trường hợp
thử nghiệm này đóng băng hastebin và vượt quá giới hạn kích thước trên pastebin
Theta(nt)
đâu n
là độ dài của mảng và t
là số lần tiến hóa; một thuật toán nhanh hơn mất Theta(n lg t)
.