<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419069&amp;view=findpost&amp;p=3833279</guid>
        <pubDate>Sat, 27 Jun 2020 07:53:57 +0000</pubDate>
        <title>Довести строку до палиндрома</title>
        <link>https://forum.sources.ru/index.php?showtopic=419069&amp;view=findpost&amp;p=3833279</link>
        <description><![CDATA[amk: <a class='tag-url' href='https://ru.wikipedia.org/wiki/Расстояние_Левенштейна' target='_blank'>Расстояние Левенштейна</a> между строкой и её зеркальным отражением.<br>
Символы, &quot;уникальные&quot; для отражения и будут необходимыми символами для вставки.]]></description>
        <author>amk</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419069&amp;view=findpost&amp;p=3833238</guid>
        <pubDate>Fri, 26 Jun 2020 15:26:37 +0000</pubDate>
        <title>Довести строку до палиндрома</title>
        <link>https://forum.sources.ru/index.php?showtopic=419069&amp;view=findpost&amp;p=3833238</link>
        <description><![CDATA[MBo: Динамическое программирование. Создаём таблицу размером NxN<br>
В ячейке A[l, r] хранится количество вставок, необходимых для создания палиндрома из подстроки l..r.<br>
<br>
Если S[l] = S[r], то A[l, r] = A[l+1, r-1]<br>
<br>
иначе  A[l, r] есть минимум из обрезков на один символ справа и слева.<br>
<br>
A[l, r] =min(A[l+1, r], A[l, r-1])<br>
<br>
При выборе минимума можно запомнить символ, который будет вставлен - он понадобится для &quot; Получить выходную строку&quot;]]></description>
        <author>MBo</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419069&amp;view=findpost&amp;p=3833195</guid>
        <pubDate>Fri, 26 Jun 2020 08:42:51 +0000</pubDate>
        <title>Довести строку до палиндрома</title>
        <link>https://forum.sources.ru/index.php?showtopic=419069&amp;view=findpost&amp;p=3833195</link>
        <description><![CDATA[Black_Dragon: Идет с обоих концов.<br>Если одинаковые, идем дальше.<br>Если нет, то смотрим следующее, чтоб понять, в каком месте вставлять, если опять разные, то просто принимаем какое-нибудь &quot;правило&quot;, например, символ, который со стороны начала фиксируется.<br><br>Вообщем цели или первый построенный по личным правилам или все (наверно проще на прологе).]]></description>
        <author>Black_Dragon</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419069&amp;view=findpost&amp;p=3833193</guid>
        <pubDate>Fri, 26 Jun 2020 08:22:41 +0000</pubDate>
        <title>Довести строку до палиндрома</title>
        <link>https://forum.sources.ru/index.php?showtopic=419069&amp;view=findpost&amp;p=3833193</link>
        <description><![CDATA[FasterHarder: я понял, ты клонишь к тому, что палиндромов может быть несколько:<br>- бббаааббб<br>- ааабббааа<br><br>вроде тут их только два (с минимальным кол-вом дополнений, а так бесконечное множество, разумеется)<br>не знаю, для упрощения, наверное ЛЮБОЙ палиндром сойдет (хотя бы этот вариант сделать)<br>если не упрощать, а со всеми выкладками, то ВСЕ возможные палиндромы<br><br>ЗЫ: да, хорошее замечание, я об этом чет сразу не подумал&#33;]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419069&amp;view=findpost&amp;p=3833190</guid>
        <pubDate>Fri, 26 Jun 2020 08:04:17 +0000</pubDate>
        <title>Довести строку до палиндрома</title>
        <link>https://forum.sources.ru/index.php?showtopic=419069&amp;view=findpost&amp;p=3833190</link>
        <description><![CDATA[Black_Dragon: Исходная строка: аааббб<br>Что должно получиться?]]></description>
        <author>Black_Dragon</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=419069&amp;view=findpost&amp;p=3833187</guid>
        <pubDate>Fri, 26 Jun 2020 07:15:17 +0000</pubDate>
        <title>Довести строку до палиндрома</title>
        <link>https://forum.sources.ru/index.php?showtopic=419069&amp;view=findpost&amp;p=3833187</link>
        <description><![CDATA[FasterHarder: Всем хай&#33; Сразу переходим к делу, важному делу&#33;<br>
<br>
Задана строка.<br>
Есть требования (я их сам дописал, чтобы недокопывались до постановки):<br>
- входить в строку могут русские (большие и малые) буквы, знаки препинания, цифры, пробел.<br>
- ввод происходит с клавиатуры и заканчивается нажатием ENTER<br>
- предельная длина строки 300 символов (если кому-то важно, можете поставить 3000 или 3млрд символов)<br>
<br>
Необходимо:<br>
1. Получить выходную строку, состоящую из МИНИМАЛЬНОГО количества символов. Символы этой выходной строки обладают таким свойством, что если их добавить в нужные позиции стартовой строки, то исходная строка превращается в палиндром (напомню, что палиндром - текст, читающийся одинаково в обоих направлениях, например, &quot;казак&quot;). Символы в выходной строке могут идти в любом порядке. Вывести выходную строку на экран.<br>
<br>
2. Получить искомый палиндром и вывести его на экран.<br>
---------------------------------------------------------------------------------<br>
Внимательно, пример:<br>
исходная_строка = &quot;оза УпаланлпУ аора&quot;<br>
выходная строка = &quot;рааза&quot; (прим. не будет ошибкой, если она будет такой (&quot;азара&quot;) или такой (&quot;зааар&quot;) или ...тут вариантов может быть вроде по формуле перестановок с повторениями, в данном случае = 5&#33; / (1&#33; * 1&#33; * 3&#33;) = 5&#33;/3&#33; = 20, может я прогнал тут чушь )).<br>
искомый_палиндром = &quot;ароза УпаланалапУ азора&quot;<br>
---------------------------------------------------------------------------------<br>
<br>
Немного подумав, я осознал, что ни на 1% процент не выкупая эту задачу. Это нужно на рекурсии или дерево строить. а может графы, а может еще что-то. 0 идей, вообще&#33; Была сначала идея двигаться по входной строке с разных концов (от концов к центру), но там куча проблем, что проверять, с чем проверять и пр. пр. Не знаю, короче, как это решается.<br>
<br>
Если есть здравые мысли, то поделитесь<br>
<br>
ЗЫ: кому важно, это НЕ ПРОМЫШЛЕННАЯ задача, а из категории &quot;Олимпиадная&quot;, а это означает, что есть еще автоматом требования эффективности (мин. памяти + макс.быстродействие, т е мин. проверок, циклов и пр.) <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-06-26T07:21:17+00:00">26.06.20, 07:21</time></span></span><br>
ааааа, тут, наверное, на сортировку с подсчетом...]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	