<?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=440889&amp;view=findpost&amp;p=3898486</guid>
        <pubDate>Wed, 27 Dec 2023 19:10:52 +0000</pubDate>
        <title>Цветной орграф. 2 фишки. 1 финиш</title>
        <link>https://forum.sources.ru/index.php?showtopic=440889&amp;view=findpost&amp;p=3898486</link>
        <description><![CDATA[AVA12: Либо я чего-то не понимаю, либо задача эта не NP, а очень даже P.<br><br>Нумеруем вершины в исходном графе. Строим &quot;конфигурационный&quot; граф из N*N вершин, каждой его вершине сопоставлена пара номеров вершин исходного графа, задающая позиции фишек. Вершины этого нового графа соединены ребром, если в исходном графе возможен переход между этими состояниями. Тогда решение исходной задачи сводится к поиску кратчайших путей в &quot;конфигурационном&quot; графе (путей - потому что в &quot;конфигурационном графе будет 2*N-1 финишных вершин).]]></description>
        <author>AVA12</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=440889&amp;view=findpost&amp;p=3898375</guid>
        <pubDate>Tue, 26 Dec 2023 05:38:00 +0000</pubDate>
        <title>Цветной орграф. 2 фишки. 1 финиш</title>
        <link>https://forum.sources.ru/index.php?showtopic=440889&amp;view=findpost&amp;p=3898375</link>
        <description><![CDATA[FasterHarder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=440889&view=findpost&p=3898369'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2023-12-26T05:02:12+00:00">26.12.23, 05:02</time></span><div class='quote '>То есть итоговый результат - сумма количества шагов, сделанных каждой фишкой.</div></div><br>
понятно, полностью согласен<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=440889&view=findpost&p=3898369'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2023-12-26T05:02:12+00:00">26.12.23, 05:02</time></span><div class='quote '> Ну по сути мы имеем не двумерный граф, а трёхмерный куб графов - каждый слой соответствует своему цвету исходящих дуг. И на каждом шаге проверяем, что одна из фишек находится на слое, соответствующем цвету узла местоположения другой фишки, причём каждая из фишек может находится на нескольких слоях одновременно. </div></div><br>
ага, там тоже вроде про трехмерное что-то говорили, буду пытаться понять<br>
<br>
а вообще все это интересно)]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=440889&amp;view=findpost&amp;p=3898369</guid>
        <pubDate>Tue, 26 Dec 2023 05:02:12 +0000</pubDate>
        <title>Цветной орграф. 2 фишки. 1 финиш</title>
        <link>https://forum.sources.ru/index.php?showtopic=440889&amp;view=findpost&amp;p=3898369</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=440889&view=findpost&p=3898368'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>FasterHarder &#064; <time class="tag-quote__quoted-time" datetime="2023-12-26T04:39:37+00:00">26.12.23, 04:39</time></span><div class='quote '>а что по этому поводу думаешь?</div></div><br>
ИМХО. Поскольку движения другой фишки - полноправные и необходимые шаги для достижения конечного результата, следует считать количество отдельных шагов безотносительно к тому, какой фишкой они сделаны. То есть итоговый результат - сумма количества шагов, сделанных каждой фишкой.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=440889&view=findpost&p=3898368'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>FasterHarder &#064; <time class="tag-quote__quoted-time" datetime="2023-12-26T04:39:37+00:00">26.12.23, 04:39</time></span><div class='quote '>было предложено создать граф из N^2 вершин</div></div><br>
Ну по сути мы имеем не двумерный граф, а трёхмерный куб графов - каждый слой соответствует своему цвету исходящих дуг. И на каждом шаге проверяем, что одна из фишек находится на слое, соответствующем цвету узла местоположения другой фишки, причём каждая из фишек может находится на нескольких слоях одновременно.]]></description>
        <author>Akina</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=440889&amp;view=findpost&amp;p=3898368</guid>
        <pubDate>Tue, 26 Dec 2023 04:39:37 +0000</pubDate>
        <title>Цветной орграф. 2 фишки. 1 финиш</title>
        <link>https://forum.sources.ru/index.php?showtopic=440889&amp;view=findpost&amp;p=3898368</link>
        <description><![CDATA[FasterHarder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=440889&view=findpost&p=3898367'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2023-12-26T04:34:07+00:00">26.12.23, 04:34</time></span><div class='quote '> Да, очень похоже на то... как говорится, &quot;Нутром чую, а доказать не могу&#33;&quot;. </div></div><br>
ок, спс, понял)<br>
<br>
а что по этому поводу думаешь?<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=440889&view=findpost&p=3898366'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>FasterHarder &#064; <time class="tag-quote__quoted-time" datetime="2023-12-26T03:20:19+00:00">26.12.23, 03:20</time></span><div class='quote '>Так, только фишек две штуки, считать нужно их сумму шагов или только той, которая сможет дойти до финиша?</div></div><br>
<br>
<br>
зы: в инете раза 3-4 уже спрашивали про это задание ( или оч. похожее ), нигде ответа нет полного, но в одном месте было предложено создать граф из N^2 вершин и что-то там делать, пока не разобрался с предложенной идеей, возможно, там тоже полный перебор предлагается...]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=440889&amp;view=findpost&amp;p=3898367</guid>
        <pubDate>Tue, 26 Dec 2023 04:34:07 +0000</pubDate>
        <title>Цветной орграф. 2 фишки. 1 финиш</title>
        <link>https://forum.sources.ru/index.php?showtopic=440889&amp;view=findpost&amp;p=3898367</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=440889&view=findpost&p=3898366'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>FasterHarder &#064; <time class="tag-quote__quoted-time" datetime="2023-12-26T03:20:19+00:00">26.12.23, 03:20</time></span><div class='quote '>Главный вопрос: это NP-полная задача и решение нужно искать ПОЛНЫМ перебором всех возможных ходов обоих фишек?</div></div><br>
Да, очень похоже на то... как говорится, &quot;Нутром чую, а доказать не могу&#33;&quot;.]]></description>
        <author>Akina</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=440889&amp;view=findpost&amp;p=3898366</guid>
        <pubDate>Tue, 26 Dec 2023 03:20:19 +0000</pubDate>
        <title>Цветной орграф. 2 фишки. 1 финиш</title>
        <link>https://forum.sources.ru/index.php?showtopic=440889&amp;view=findpost&amp;p=3898366</link>
        <description><![CDATA[FasterHarder: Всем хай&#33; Сходу к делу&#33;<br>
<br>
<span class="tag-color tag-color-named" data-value="blue" style="color: blue"><strong class='tag-b'>Есть такая задача.<br>
Дан орграф, состоящий из N вершин ( N = [ 5 .. 99 ] ). Каждая вершина и дуга графа окрашена в определенный цвет. Количество различных цветов от 1 до 5. Задается 2 вершины, в которых находятся по фишке игрока, и конечная вершина ( финиш ). Игрок имеет право передвигать фишку по дуге, если ее цвет совпадает с цветом вершины, в которой находится другая фишка. <span class='tag-u'>Ходить поочередно фишками необязательно</span>. Игра заканчивается, если одна из двух фишек встанет на конечную вершину ( достигнет финиша ). Найти кратчайший путь до финиша.<br>
</strong></span><br>
==========================================================<br>
<br>
Если я все правильно понял из условия, то вот поясняющая картинка, где задействовано 3 различных цвета:<br>
<span class="b-attach" data-size="33104" data-hits="269" data-attach-id="65296" data-attach-post-id="3898366">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3898366&amp;attach_id=65296' title='Скачать файл' target='_blank'>___________________________.png</a> (, : 269)
		</span><br>
<br>
Некоторые моменты:<br>
1. просят найти кратчайший путь. В данном случае можно считать, что орграф взвешенный и вес ВСЕХ дуг = 1. Т е кратчайший путь - это кол-во дуг, по которым нужно пройти до финиша. Так, только фишек две штуки, считать нужно их сумму шагов или только той, которая сможет дойти до финиша?<br>
2. элементарный случай, когда финиш совпадает с одной из стартовых вершин, в этом случае ответ = 0. Окэй.<br>
3. если обе фишки стартуют из одной стартовой вершины, ну, они могут где-то разойтись и пойти по разным траекториям, вроде такой вариант вполне может быть<br>
4. если вершины и дуги окрашены 1 цветом ( например, все черное ), ну, тогда DFS ( BFS ) и побеждает та фишка, которая &quot;ближе&quot; к финишу - это какой-то частный элементарный случай<br>
<br>
Как я понял, чтобы победить в &quot;игре&quot; фишки должны <span class='tag-u'>помогать</span> друг другу двигаться по орграфу. Возможны развилки ( 2 исходящих дуги одного цвета ) из текущей вершины и куда идти - непонятно.<br>
<br>
<strong class='tag-b'>Главный вопрос:</strong> это NP-полная задача и решение нужно искать <span class='tag-u'>ПОЛНЫМ перебором</span> всех возможных ходов обоих фишек? А то были мысли сначала построить матрицу расстояний от каждой вершины до финиша, не обращая на цвет, но вроде все это пустое...<br>
<br>
спс <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="2023-12-26T03:26:05+00:00">26.12.23, 03:26</time></span></span><br>
примерно такие структуры данных могут потребоваться<br>
<div class="tag-spoiler spoiler closed"><div class="spoiler_header" onclick="openCloseParent(this)">Скрытый текст</div><div class="body"><div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">// коллекция допустимых цветов для окрашивания вершин и дуг орграфа</div><div class="code_line">enum COLOR</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;COLOR_INVALID_VALUE = 0,</div><div class="code_line">&nbsp;&nbsp; &nbsp;COLOR_FIRST = 1,</div><div class="code_line">&nbsp;&nbsp; &nbsp;COLOR_RED = 1,</div><div class="code_line">&nbsp;&nbsp; &nbsp;COLOR_GREEN = 2,</div><div class="code_line">&nbsp;&nbsp; &nbsp;COLOR_BLUE = 3,</div><div class="code_line">&nbsp;&nbsp; &nbsp;COLOR_LAST = 3</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">// для окраски вершин можно задать отдельный массив ( можно через vector )</div><div class="code_line">#define VERTEX_COUNT 5</div><div class="code_line">COLOR vertex_color[ VERTEX_COUNT ] = </div><div class="code_line">&nbsp;&nbsp; &nbsp;{ </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;COLOR_RED, </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;COLOR_GREEN, </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;COLOR_GREEN, </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;COLOR_BLUE,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;COLOR_RED</div><div class="code_line">&nbsp;&nbsp; &nbsp;};</div><div class="code_line">&nbsp;</div><div class="code_line">// описание дуги</div><div class="code_line">struct Edge</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;int from; &nbsp; &nbsp; &nbsp; // метка вершины, из которой выходит дуга</div><div class="code_line">&nbsp;&nbsp; &nbsp;int to; &nbsp; &nbsp; &nbsp; &nbsp; // метка вершины, в которую входит дуга</div><div class="code_line">&nbsp;&nbsp; &nbsp;COLOR color; &nbsp; &nbsp;// цвет дуги</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;// параметрический конструктор</div><div class="code_line">&nbsp;&nbsp; &nbsp;Edge( const int from, const int to, const COLOR color )</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;this -&#62; from = from;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;this -&#62; to = to;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;this -&#62; color = color;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">// для представления связей между вершинами использовать список смежности, как вариант</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script></div></div>]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	