Редактирование: Link-Cut Tree

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 53: Строка 53:
 
  '''function''' expose(u: '''tree'''):
 
  '''function''' expose(u: '''tree'''):
 
     splay(u)
 
     splay(u)
     v <tex>=</tex> u
+
     v <tex>\leftarrow</tex> u
 
     '''while''' v <tex> \ne </tex> root
 
     '''while''' v <tex> \ne </tex> root
         p <tex>=</tex> pathparent(v)        <font color=green>//получаем указатель на ближайшую вершину пути, пересекающего путь от u до корня</font>
+
         p <tex>\leftarrow</tex> pathparent(v)        <font color=green>//получаем указатель на ближайшую вершину пути, пересекающего путь от u до корня</font>
 
         splay(p)                  <font color=green>//теперь в правом поддереве p находятся вершины пути, которые находятся ниже чем p в link-cut-дереве,</font>
 
         splay(p)                  <font color=green>//теперь в правом поддереве p находятся вершины пути, которые находятся ниже чем p в link-cut-дереве,</font>
         parent(right(p)) <tex>=</tex> null  <font color=green>//поэтому правое поддерево p делаем новым путем</font>
+
         parent(right(p)) <tex>\leftarrow</tex> null  <font color=green>//поэтому правое поддерево p делаем новым путем</font>
         pathparent(right(p)) <tex>=</tex> p
+
         pathparent(right(p)) <tex>\leftarrow</tex> p
         right(p) <tex>=</tex> v            <font color=green>//объединяем оставшийся и построенный пути</font>
+
         right(p) <tex>\leftarrow</tex> v            <font color=green>//объединяем оставшийся и построенный пути</font>
 
         <tex>\vartriangle</tex>w(v) -= <tex>\vartriangle</tex>w(p)
 
         <tex>\vartriangle</tex>w(v) -= <tex>\vartriangle</tex>w(p)
         <tex>\vartriangle</tex>min(p) <tex>=</tex> min{0, <tex>\vartriangle</tex>min(left(p)) + <tex>\vartriangle</tex>w(left(p)), <tex>\vartriangle</tex>min(right(p)) + <tex>\vartriangle</tex>w(right(p))}
+
         <tex>\vartriangle</tex>min(p) <tex>\leftarrow</tex> min{0, <tex>\vartriangle</tex>min(left(p)) + <tex>\vartriangle</tex>w(left(p)), <tex>\vartriangle</tex>min(right(p)) + <tex>\vartriangle</tex>w(right(p))}
         pathparent(v) <tex>=</tex> null
+
         pathparent(v) <tex>\leftarrow</tex> null
         v <tex>=</tex> p
+
         v <tex>\leftarrow</tex> p
 
     splay(u)
 
     splay(u)
  

Пожалуйста, учтите, что любой ваш вклад в проект «Викиконспекты» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Викиконспекты:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

Чтобы изменить эту страницу, пожалуйста, ответьте на приведённый ниже вопрос (подробнее):

Отменить | Справка по редактированию (в новом окне)

Шаблоны, используемые на этой странице: