Как я могу вычислить перестановку вершины со свойством «префикс-соседы» в полиномиальное время?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как я могу вычислить перестановку вершины со свойством «префикс-соседы» в полиномиальное время?

Сообщение Anonymous »

У меня есть неопределенный график, и мне нужно переупорядочить его вершины в перестановку, которая удовлетворяет следующему свойству «префикс-соседы»: < /p>

Свойство: для Каждая вершина (с) в перестановке, если существует какая -либо вершина (с), которая примыкает к (т. Е.), то каждая вершина с должна также быть рядом с . < /p>
< /blockquote>
Другими словами, если есть какие -либо соседи среди вершин, которые находятся перед ним в упорядочении, то эти соседи должны сформировать смежный блок, начиная с Самая первая вершина в упорядочении. : < /p>
Vertex 1: Сначала помещена, поэтому не применяется условия. < /p>
Vertex 2: помещено второе; Если он имеет какой -либо сосед среди вершин перед ним, то самая первая вершина должна быть соседней, но здесь случается, что 2 не соседнее 1, поэтому условие не запускается. < /p>
Vertex 0: занял третье место; Его соседи среди 1 и 2. Самый ранний (самый низкий индекс) сосед-1, что в начале упорядочения. < /p>
вершина 3: размещена последним; Его соседи среди 1 и 2 (его первый сосед - 1 в индексе 0), поэтому условие удовлетворяется. < /p>
Мои вопросы: < /p>

[*] Алгоритм и сложность:
можно ли вычислять такую ​​перестановку во времени? < /p>
< /li>

Подход:
Какой алгоритм вы бы порекомендовали для этой проблемы? (Например, я должен попробовать жадный подход, использовать свойства хордовых графиков или идеальные порядок исключения, или, возможно, использовать поиск в обратном отслеживании с помощью MRV (минимальные оставшиеся значения) эвристический?)

уникальность:
при каких условиях такая уникальная упорядочение, и как я могу обнаружить, существует ли несколько действительных заказов или если нет действительного порядка существует? >

Подробнее здесь: https://stackoverflow.com/questions/794 ... rty-in-pol
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»