Lập trình Robot xếp chồng


36

Tôi chắc rằng mọi người đã thấy trước đó những chiếc cốc có thể được xếp thành các kim tự tháp (và các hình dạng khác):

           A    
        A A A   
 A     A A A A  
A A A A A A A A

Vâng, Achắc chắn là một nhân vật đầy đủ để đại diện cho một cốc.

Cốc mới có thể được thêm hoặc trên mặt đất, bên phải của cấu trúc, hoặc trên đầu của hai cốc liền kề. Đây là cấu trúc trên một lần nữa, nhưng tất cả các điểm có sẵn cho cốc mới được đánh dấu bằng _:

         _ A         
        A A A        
 A _ _ A A A A       
A A A A A A A A _ _ _

Giả sử chúng ta muốn chế tạo một robot có thể lắp ráp các ngăn xếp cốc này. Robot sẽ hiểu hai hướng dẫn đơn giản để thao tác cấu trúc như vậy:

  • a: Thêm một cốc mới vào vị trí có sẵn đầu tiên theo thứ tự đọc từ trái sang phải (nghĩa là quét các hàng từ trên xuống dưới, từ trái sang phải cho đến khi bạn tìm thấy một vị trí có sẵn, sau đó đặt cốc ở đó). Ví dụ trên sẽ trở thành:

             A A   
            A A A  
     A     A A A A 
    A A A A A A A A
    
  • r: Hủy bỏ cốc đầu tiên theo thứ tự đọc từ trái sang phải. Ví dụ trên sẽ trở thành:

            A A A  
     A     A A A A 
    A A A A A A A A
    

Nó chỉ ra rằng bất kỳ cấu trúc có thể được xây dựng từ đầu chỉ bằng hai thao tác này. Ví dụ

      A
 A   A A
A A A A A

Có thể được xây dựng với chuỗi hướng dẫn

aaaaaaaaaaaarrrrraa

Ví dụ lớn hơn ở trên có thể được xây dựng bằng cách sử dụng

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrrrrraaaaaaarr

Đây là một thậm chí còn lớn hơn:

    A
   A A                   A
  A A A     A   A       A A
 A A A A   A A A A     A A A A
A A A A A A A A A A   A A A A A

có thể được xây dựng với

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrraaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrraaaaaaaaaaaaaarrrrrrrrrrraaaaaaaa

Lưu ý: Nếu các điểm trên mặt đất được giải phóng bằng hướng dẫn loại bỏ, chúng sẽ được sử dụng lại trước khi đặt cốc sang bên phải của tất cả các cốc hiện có. Ví dụ

aaaarrra

sẽ mang lại

A   A

không phải

    A A

Bạn có thể nghĩ về mặt đất như đang ở trên một hàng cốc vô hạn.

Các thách thức

Đưa ra một cấu trúc của các cốc xếp chồng lên nhau, trả về một chuỗi biểu thị các hướng dẫn để xây dựng cấu trúc này. Điểm chính của bạn là tổng số lượng hướng dẫn cho các trường hợp kiểm tra được cung cấp ở phía dưới. Trong trường hợp hòa (có khả năng, bởi vì tôi tin rằng một giải pháp tối ưu hiệu quả là có thể), giải pháp ngắn nhất sẽ thắng.

Dưới đây là một số chi tiết về các quy tắc:

  • Bạn có thể giả định rằng không có khoảng trắng ở hàng dưới cùng của đầu vào, vì vậy vị trí trên cùng bên trái của cốc luôn được sử dụng.
  • Bạn có thể giả sử bất kỳ số lượng không gian dấu hợp lý nào (không có khoảng trắng, một khoảng trắng, được đệm vào một hình chữ nhật, được đệm vào một hình chữ nhật với một khoảng trống duy nhất).
  • Bạn có thể tùy ý mong đợi đầu vào kết thúc trong một dòng mới duy nhất.
  • Bạn có thể chọn bất kỳ hai ký tự ASCII có thể in riêng biệt (0x20 đến 0x7E, đã bao gồm) thay vì A và khoảng trắng (các quy tắc về khoảng trắng sau đó chuyển sang ký tự bạn đã chọn).
  • Đầu ra của bạn chỉ nên chứa hai ký tự riêng biệt đại diện cho các hoạt động (bạn có thể chọn các ký tự khác ngoài ar ). Bạn có thể tùy ý in một dòng mới duy nhất.
  • Mã của bạn phải có thể giải quyết bất kỳ trường hợp thử nghiệm nào dưới đây trong vòng chưa đầy một phút trên máy tính để bàn hợp lý (nếu tôi mất hai phút, tôi sẽ cung cấp cho bạn lợi ích của sự nghi ngờ, nhưng nếu mất mười thì tôi đã thắng 't - Tôi tin rằng một thuật toán tối ưu là có thể giúp giải quyết bất kỳ trong số chúng trong chưa đầy một giây).
  • Bạn không được tối ưu hóa mã của mình đối với các trường hợp thử nghiệm riêng lẻ (ví dụ: bằng cách mã hóa chúng). Nếu tôi nghi ngờ bất cứ ai làm như vậy, tôi có quyền thay đổi các trường hợp thử nghiệm.

Bạn có thể sử dụng tập lệnh CJam này cho thao tác ngược lại: nó sẽ lấy một chuỗi các hướng dẫn xây dựng và in ra các ngăn xếp kết quả. (Cảm ơn Dennis vì đã viết lại đoạn trích và tăng tốc đáng kể.)

Sp3000 cũng vui lòng cung cấp tập lệnh Python thay thế này cho cùng mục đích.

Các trường hợp thử nghiệm

Sau mỗi trường hợp thử nghiệm, có một số chỉ số lượng hướng dẫn tối ưu theo câu trả lời của Ell.

                                       A
                                      A A
                                     A A A
                                    A A A A
                                   A A A A A
                                  A A A A A A
                                 A A A A A A A
                                A A A A A A A A
                               A A A A A A A A A
                              A A A A A A A A A A
                             A A A A A A A A A A A
                            A A A A A A A A A A A A
                           A A A A A A A A A A A A A
                          A A A A A A A A A A A A A A
                         A A A A A A A A A A A A A A A
                        A A A A A A A A A A A A A A A A
                       A A A A A A A A A A A A A A A A A
                      A A A A A A A A A A A A A A A A A A
                     A A A A A A A A A A A A A A A A A A A
                    A A A A A A A A A A A A A A A A A A A A
                   A A A A A A A A A A A A A A A A A A A A A
                  A A A A A A A A A A A A A A A A A A A A A A
                 A A A A A A A A A A A A A A A A A A A A A A A
                A A A A A A A A A A A A A A A A A A A A A A A A
               A A A A A A A A A A A A A A A A A A A A A A A A A
              A A A A A A A A A A A A A A A A A A A A A A A A A A
             A A A A A A A A A A A A A A A A A A A A A A A A A A A
            A A A A A A A A A A A A A A A A A A A A A A A A A A A A
           A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
          A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
         A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
        A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
       A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
      A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
     A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
    A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
   A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
  A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
 A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A

820
                                             A
                                            A A
                                           A A A
                                          A A A A
                                         A A A A A
                                        A A A A A A
                                       A A A A A A A
                                      A A A A A A A A
                     A               A A A A A A A A A
                    A A             A A A A A A A A A A
                   A A A           A A A A A A A A A A A
                  A A A A         A A A A A A A A A A A A
         A       A A A A A       A A A A A A A A A A A A A
        A A     A A A A A A     A A A A A A A A A A A A A A
   A   A A A   A A A A A A A   A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A

1946

               A
              A A
             A A A
            A A A A
           A A A A A
          A A A A A A
         A A A A A A A
        A A A A A A A A
       A A A A A A A A A               A
      A A A A A A A A A A             A A
     A A A A A A A A A A A           A A A
    A A A A A A A A A A A A         A A A A
   A A A A A A A A A A A A A       A A A A A       A
  A A A A A A A A A A A A A A     A A A A A A     A A
 A A A A A A A A A A A A A A A   A A A A A A A   A A A   A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A

2252

                                                         A A
                                                      A A A A
                                                   A A A A A A
                                                A A A A A A A A
                                             A A A A A A A A A A
                                          A A A A A A A A A A A A
                                       A A A A A A A A A A A A A A
                                    A A A A A A A A A A A A A A A A
                                 A A A A A A A A A A A A A A A A A A
                              A A A A A A A A A A A A A A A A A A A A
                           A A A A A A A A A A A A A A A A A A A A A A
                        A A A A A A A A A A A A A A A A A A A A A A A A
                     A A A A A A A A A A A A A A A A A A A A A A A A A A
                  A A A A A A A A A A A A A A A A A A A A A A A A A A A A
               A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
            A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
         A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
      A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
   A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A

9958

                   A A
                  A A A A
                 A A A A A A
                A A A A A A A A
               A A A A A A A A A A
              A A A A A A A A A A A A
             A A A A A A A A A A A A A A
            A A A A A A A A A A A A A A A A
           A A A A A A A A A A A A A A A A A A
          A A A A A A A A A A A A A A A A A A A A
         A A A A A A A A A A A A A A A A A A A A A A
        A A A A A A A A A A A A A A A A A A A A A A A A
       A A A A A A A A A A A A A A A A A A A A A A A A A A
      A A A A A A A A A A A A A A A A A A A A A A A A A A A A
     A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
    A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
   A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
  A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
 A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A

5540

A   A   A   A   A   A   A   A   A   A   A   A   A   A   A   A   A   A   A   A

10280

 A   A   A   A   A   A   A   A   A   A   A   A   A   A   A   A   A   A   A   A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A

10320

   A       A       A       A       A       A       A       A       A       A
  A A     A A     A A     A A     A A     A A     A A     A A     A A     A A
 A A A   A A A   A A A   A A A   A A A   A A A   A A A   A A A   A A A   A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A

5794

              A
             A A
            A A A
           A A A A                                               A
          A A A A A                                             A A
         A A A A A A A                                         A A A
        A A A A A A A A               A                       A A A A
       A A A A A A A A A             A A             A       A A A A A   A
      A A A A A A A A A A           A A A           A A     A A A A A A A A
     A A A A A A A A A A A         A A A A         A A A   A A A A A A A A A
    A A A A A A A A A A A A       A A A A A       A A A A A A A A A A A A A A
 A A A A A A A A A A A A A A     A A A A A A     A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A   A A A A A A A   A A A A A A A A A A A A A A A A

3297

                                                   A A
                                                  A A A
                                                 A A A A
                                                A A A A A
                                               A A A A A A
                                              A A A A A A A
                                             A A A A A A A A
                                            A A A A A A A A A
                                           A A A A A A A A A A     A
                                          A A A A A A A A A A A   A A
                                       A A A A A A A A A A A A A A A A
                                      A A A A A A A A A A A A A A A A A
                                     A A A A A A A A A A A A A A A A A A
      A                             A A A A A A A A A A A A A A A A A A A
     A A                           A A A A A A A A A A A A A A A A A A A A
    A A A             A A         A A A A A A A A A A A A A A A A A A A A A
   A A A A           A A A       A A A A A A A A A A A A A A A A A A A A A A
  A A A A A         A A A A     A A A A A A A A A A A A A A A A A A A A A A A
 A A A A A A     A A A A A A   A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A   A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A

4081

                      A
                     A A       A                     A
                    A A A     A A                   A A A                 A
             A     A A A A   A A A A               A A A A     A         A A
  A         A A   A A A A A A A A A A         A   A A A A A   A A       A A A
 A A       A A A A A A A A A A A A A A       A A A A A A A A A A A     A A A A
A A A   A A A A A A A A A A A A A A A A     A A A A A A A A A A A A   A A A A A

4475

                                                             A              
      A           A                       A                 A A A   A       A
     A A         A A   A         A A     A A A   A         A A A A A A     A A
A   A A A A A   A A A A A   A   A A A   A A A A A A   A   A A A A A A A   A A A

5752

Điều đó có nghĩa, điểm số tốt nhất có thể là 64.515 hướng dẫn.

Câu trả lời:


32

Con trăn 2, 64,515

import sys

input = map(str.rstrip, sys.stdin.readlines())
width = (len(input[-1]) + 1) / 2
for i in range(len(input)):
    indent = len(input) - i - 1
    input[i] = [c != " " for c in input[i][indent::2]]
    input[i] += [False] * (width - indent - len(input[i]))
input = [[False] * n for n in range(width - len(input) + 1)] + input
working_area = [[False] * n for n in range(width + 1)]

def add():
    sys.stdout.write("a")
    for row in range(width + 1):
        for i in range(row):
            if not working_area[row][i] and (
                row == width or
                (working_area[row + 1][i] and working_area[row + 1][i + 1])
            ):
                working_area[row][i] = True
                return
def remove():
    sys.stdout.write("r")
    for row in range(width + 1):
        if True in working_area[row]:
            working_area[row][working_area[row].index(True)] = False
            return

for row in range(width, -1, -1):
    r = input[row]; R = working_area[row]
    for i in range(len(r) - 1, -1, -1):
        if r[i]:
            while not R[i]: add()
        else:
            while R[i]: remove()

Các kết quả

Kiểm tra 1 # 1 - 820 # 2 - 1,946 # 3 - 2252 # 4 - 9958 # 5 - 5540 # 6 - 10.280 # 7 - 10.320 # 8 - 5794 # 9 - 3297 # 10 - 4081 # 11 - 4475 # 12 - 5752Kiểm tra 2 Bài kiểm tra 3
Kiểm tra 4 Kiểm tra 5 Kiểm tra 6
Kiểm tra 7 Kiểm tra 8 Kiểm tra 9
Kiểm tra 10 Bài kiểm tra 11 Kiểm tra 12

Tổng cộng 64.515

Giải trình

Chúng tôi bắt đầu với một "khu vực làm việc" trống rỗng. Chúng tôi quét đầu vào theo thứ tự đọc ngược , nghĩa là từ phải sang trái và từ dưới lên trên. Nếu có sự không phù hợp giữa đầu vào và khu vực làm việc tại vị trí hiện tại (nghĩa là một cốc có mặt trong đầu vào nhưng không ở khu vực làm việc, hoặc ngược lại,) chúng tôi thêm hoặc loại bỏ, tách vào khu vực làm việc, theo theo các quy tắc, cho đến khi sự không phù hợp được giải quyết, tại thời điểm đó chúng tôi tiếp tục đến vị trí tiếp theo.

Đúng

Để chỉ ra rằng phương pháp này là chính xác, nghĩa là chuỗi kết quả tạo ra cấu trúc đầu vào, đủ để cho thấy rằng chúng tôi không bao giờ sửa đổi (nghĩa là thêm hoặc xóa cốc tại) các vị trí chúng tôi đã truy cập (từ, tại mỗi vị trí chúng tôi truy cập , chúng tôi đảm bảo rằng khu vực làm việc khớp với đầu vào.) Đây là một kết quả dễ dàng của thực tế là chúng tôi làm việc theo thứ tự ngược lại trong đó cốc được thêm và loại bỏ:

  • Một cốc ở vị trí l sẽ luôn bị loại bỏ trước cốc ở vị trí thành công l theo thứ tự đọc, và do đó, trước l theo thứ tự quét, do đó không có nguy cơ tháo cốc mà chúng tôi đã truy cập.
  • Tương tự, một cốc ở vị trí l sẽ luôn được thêm vào trước một cốc trước nó theo thứ tự quét, với điều kiện là đã có hai cốc bên dưới nó (hoặc nó ở dưới đáy); tuy nhiên, vì chúng tôi đã truy cập vào các địa điểm này và do đó đã thêm các cốc cần thiết và vì như đã lưu ý ở trên, không có nguy cơ nào sau đó đã tháo các cốc đó, điều kiện này được đáp ứng và do đó không có nguy cơ thêm cốc vào một địa điểm chúng tôi đã ghé thăm.

Tối ưu

Lưu ý rằng tác dụng của việc thêm hoặc xóa, tách khỏi cấu trúc không phụ thuộc vào chuỗi thao tác được sử dụng để tạo cấu trúc, chỉ dựa trên cấu hình hiện tại của nó. Kết quả là, đưa ra một chuỗi tối ưu S n = { s 1 , ..., s n } của các hoạt động tạo ra một cấu trúc nhất định, mọi phân đoạn ban đầu của S n , tức là, bất kỳ chuỗi S m = { s 1 , .. ., s m }, trong đó mn , cũng là một chuỗi tối ưu, đối với cấu trúc tương ứng mà nó tạo ra, nếu không sẽ có một chuỗi ngắn hơn S n, tạo ra cấu trúc tương tự.

Chúng ta có thể chỉ ra rằng phương thức của chúng ta là tối ưu bằng cách cảm ứng về độ dài của chuỗi tạo tối ưu: Phương pháp của chúng ta rõ ràng tạo ra một chuỗi tối ưu cho bất kỳ cấu trúc nào có chuỗi tạo tối ưu là trống (chỉ có một cấu trúc như vậy. Cấu trúc trống.) Giả sử rằng chúng ta phương thức tạo ra một chuỗi tối ưu cho tất cả các cấu trúc có trình tự (hoặc chuỗi) tối ưu có độ dài n và xem xét một cấu trúc được tạo bởi một chuỗi tối ưu S n +1 . Chúng tôi muốn chỉ ra rằng, với cấu trúc được tạo bởi S n +1 làm đầu vào, phương thức của chúng tôi tạo ra cùng một chuỗi (hoặc, ít nhất, một chuỗi có cùng độ dài.)

Như đã lưu ý ở trên, S n cũng là một chuỗi tối ưu, và theo giả thuyết, phương pháp của chúng tôi tạo ra một chuỗi tối ưu với cấu trúc được tạo bởi S n làm đầu vào. Giả sử, không mất tính tổng quát, S n là chuỗi được tạo bởi phương thức của chúng tôi (nếu không, chúng tôi luôn có thể thay thế n phần tử đầu tiên của S n +1 bằng chuỗi đã nói và lấy một chuỗi có độ dài là phân đoạn ban đầu của S n , chương trình của chúng tôi sẽ được tạo khi nó đạt đến l (nhưng trước khi xử lý l ). Lưu ý rằng, vì các cấu trúc được tạo bởi S n n + 1 tạo cùng cấu trúc.) Gọi l là vị trí được sửa đổi bởi thao tác cuối cùng trong S n +1 (cụ thể là s n +1 ) và đểS m S n +1 đồng ý ở tất cả các vị trí theo l , theo thứ tự đọc, S m là cấu trúc tương tự được đưa ra làm đầu vào.

Nếu s n +1a(nghĩa là thêm cốc), thì không được có bất kỳ vị trí nào trước l , theo thứ tự đọc, trong đó một cốc có thể được thêm vào cấu trúc do S n tạo ra . Kết quả là, chuỗi con của S n theo sau S m phải là tất cả a(vì rsẽ ngụ ý rằng có một khoảng trống trước đó l hoặc S n không tối ưu.) Khi chúng ta xử lý l , chúng ta cần phải xử lý thêm chính xác cốc n - m trước khi chúng ta có thể thêm cốc vào l , do đó chuỗi kết quả sẽ là Sm , theo sau làcác phần tử n - m + 1a, bằng S n +1 (sẽ không có bất kỳ sự không khớp nào sau thời điểm này, do đó đây là chuỗi hoàn chỉnh được tạo ra.)

Tương tự, nếu s n +1r, thì không được có bất kỳ cốc nào tại một vị trí trước l , theo thứ tự đọc, trong cấu trúc được tạo bởi S n . Kết quả là, sau đó S n theo S m phải là tất cả r. Khi chúng tôi đến để xử lý l , chúng tôi sẽ cần phải loại bỏ chính xác cốc n - m trước khi chúng tôi có thể loại bỏ cốc tại l , do đó chuỗi kết quả sẽ là S m , tiếp theo là các phần tử n - m + 1 r, một lần nữa bằng S n +1 .

Nói cách khác, phương pháp của chúng tôi tạo ra một chuỗi tối ưu cho cấu trúc đầu vào đã nói, và do đó, bằng cảm ứng, cho bất kỳ cấu trúc đầu vào nào.

Lưu ý rằng điều này không có nghĩa là việc triển khai này là hiệu quả nhất. Ví dụ, chắc chắn có thể tính được số lượng cốc phải thêm hoặc loại bỏ, tại mỗi điểm trực tiếp, thay vì thực sự thực hiện các thao tác này.

Độc đáo

Chúng ta có thể sử dụng tính tối ưu của phương pháp để chỉ ra rằng các chuỗi tối ưu trên thực tế là duy nhất (nghĩa là không có hai chuỗi tối ưu riêng biệt nào tạo ra cùng một cấu trúc.) Chúng ta lại sử dụng cảm ứng về kích thước của chuỗi tạo tối ưu: Chuỗi trống rõ ràng là chuỗi tạo tối ưu duy nhất của cấu trúc trống. Giả sử rằng tất cả các chuỗi tạo tối ưu có độ dài n là duy nhất và xem xét một cấu trúc,, được tạo bởi hai chuỗi tối ưu S n +1T n +1 .

Hãy nhớ lại rằng S nT n là tối ưu, và do đó, theo giả thuyết, là duy nhất. Vì phương pháp của chúng tôi tạo ra các chuỗi tối ưu, S nT n có thể được coi là được tạo bởi phương thức của chúng tôi. Cho l Sl T là các vị trí được sửa đổi bởi thao tác cuối cùng trong S n +1T n +1 , và giả sử, không mất tính tổng quát, rằng l S sau, hoặc bằng, l T trong việc đọc theo thứ tự. Vì các cấu trúc được tạo bởi S nT n đồng ý ở tất cả các vị trí sau l S, theo thứ tự đọc, chuỗi được tạo bởi phương thức của chúng tôi, được đưa ra cấu trúc làm đầu vào, khi nó đạt đến l S (nhưng trước khi xử lý nó), giống nhau cho cả hai; gọi dãy này U .

Vì hành động cuối cùng của S n +1 làm thay đổi l S , nếu có cốc tại l S thì không được có bất kỳ chỗ trống nào trước l S và nếu không có cốc tại l S thì không được có cốc trước l S , theo thứ tự đọc. Do đó, phần còn lại của chuỗi tạo, theo U , phải bao gồm ứng dụng lặp lại của cùng một hướng dẫn, được quyết định bởi sự hiện diện hoặc vắng mặt của cốc tại l S (nếu không nó sẽ không tối ưu). Nói cách khác, S n +1 T n +1là bằng nhau (cả hai đều bắt đầu bằng U và kết thúc bằng chuỗi lệnh lặp lại đã nói,) nghĩa là, chuỗi tạo tối ưu của Σ là duy nhất và do đó, theo cảm ứng, tất cả các chuỗi tạo tối ưu là duy nhất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.