Если нам дано n строк и их длины, а также функция добавления (строка s1, строка s2), которая объединит строку s2 с s1 и вернет s3. Как бы мы оптимизировали стоимость конкатенации всех этих строк в одну большую строку.
Если бы такая функция не была задана, мы могли бы просто создать выходную строку размера (n1 + n2 + ...nn) и продолжать добавлять к ней символы каждой строки. Но с этой заданной функцией нам пришлось бы пройти входную строку s1, чтобы найти ее конец, а затем начать конкатенацию строки s2 с ней.
поэтому, если длина строк равна 2, 6, 1, 3, 4 ..
add (s1, s2) traversal for length 2, op string of length 8
add (s1, s3) traversal for length (2+6) op string of length 9
add (s1, s4) traversal for length (2+6+1) op string of length 12
add (s1, s5) traversal for length (2+6+1+3) op string of length 16...and so on..
add()
операции? - person rici   schedule 11.10.2012