<?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=421203&amp;view=findpost&amp;p=3844974</guid>
        <pubDate>Thu, 25 Feb 2021 14:22:49 +0000</pubDate>
        <title>петли и параллельные ребра в неор.графе</title>
        <link>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844974</link>
        <description><![CDATA[AVA12: Убрать сортировку &quot;под капот&quot; - не значит избавиться от нее. Даже если это не сортировка, а хеширование - все равно полезно помнить про накладные расходы.<br>
<br>
В данной задаче, вероятно, сортировка и правда не нужна. Если для каждой вершины меньше десятка инцидентных ей ребер, то можно для каждой вершины завести неупорядоченный односвязный список смежных вершин и искать элементы простым перебором.<br>
<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>я ведь реализовал изначально через заполнение матрицы смежности 0 и 1 + доп.вектор для петель</div></div><br>
А зачем доп.вектор для петель? Петля - это, по сути, вершина, смежная сама с собой, так что матрицы достаточно.]]></description>
        <author>AVA12</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844969</guid>
        <pubDate>Thu, 25 Feb 2021 07:22:35 +0000</pubDate>
        <title>петли и параллельные ребра в неор.графе</title>
        <link>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844969</link>
        <description><![CDATA[OpenGL: В кои-то веки согласен с <strong class='tag-b'>FasterHarder</strong>. Сортировать не надо, можно просто в std::set/std::unordered_set очередное ребро запихивать.]]></description>
        <author>OpenGL</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844951</guid>
        <pubDate>Wed, 24 Feb 2021 12:01:30 +0000</pubDate>
        <title>петли и параллельные ребра в неор.графе</title>
        <link>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844951</link>
        <description><![CDATA[FasterHarder: <strong class='tag-b'>Akina</strong>, а я вот считаю, что сортировка здесь НЕ нужна вообще - и так все прекрасно сработает<br>
здесь вообще о сортировке даже речи быть не может<br>
<br>
есть множество (stl-ское какое-нибудь) и через него все можно сделать. Вот единственная проблема, что я плохо помню устройство этих контейнеров set/map и пр., поэтому не хочу спорить сильно)<br>
<br>
зы: а вообще я ведь реализовал изначально через заполнение матрицы смежности 0 и 1 + доп.вектор для петель - прожка прошла все тесты по времени и производительности (не забыл поставить register для счетчиков циклов  :yes: ) - можно считать, что на &quot;чистом&quot; си была выполнена. И считывание данных заканчивалось, как только была обнаружена 1ая пара || ребер. Все ок<br>
------------------------------------------------------------<br>
краем глаза прочитал про stl-ский set: пишут, что при добавлении в множество <span class="tag-color tag-color-named" data-value="red" style="color: red"><strong class='tag-b'>автоматически </strong></span>происходит сортировка в порядке возрастания. + перед тем, как добавить элемент в сет, можно узнать через find, а существует ли такое значение в сете.<br>
<br>
в общем я НЕ понимаю, зачем здесь что-то сортировать вручную]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844938</guid>
        <pubDate>Wed, 24 Feb 2021 05:02:46 +0000</pubDate>
        <title>петли и параллельные ребра в неор.графе</title>
        <link>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844938</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=421203&view=findpost&p=3844918'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>FasterHarder &#064; <time class="tag-quote__quoted-time" datetime="2021-02-23T10:37:31+00:00">23.02.21, 10:37</time></span><div class='quote '>зачем здесь ЧТО-ТО сортировать???&#33;</div></div><br>
Чтобы: <br>
<br>
1) быстрее вставлять очередную запись в сортированный список, сохраняя сортировку<br>
2) при этом быстрее выполнять проверку на дублирование<br>
<br>
Глупо вводить всё, когда уже на середине ввода станет возможно дать ответ.]]></description>
        <author>Akina</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844918</guid>
        <pubDate>Tue, 23 Feb 2021 10:37:31 +0000</pubDate>
        <title>петли и параллельные ребра в неор.графе</title>
        <link>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844918</link>
        <description><![CDATA[FasterHarder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=421203&view=findpost&p=3844911'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>MBo &#064; <time class="tag-quote__quoted-time" datetime="2021-02-22T21:18:08+00:00">22.02.21, 21:18</time></span><div class='quote '>В мап клади пары, отсортированные</div></div><br>
а, если язык &quot;чистый&quot; СИ)<br>
но, на самом деле язык С++, поэтому все эти шаблоны вроде можно юзать. Но я работаю с СИ раз так в 10 больше, чем с С++, поэтому плохо умею мыслить в терминах stl.<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=421203&view=findpost&p=3844913'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2021-02-23T07:44:30+00:00">23.02.21, 07:44</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=421203&view=findpost&p=3844913'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2021-02-23T07:44:30+00:00">23.02.21, 07:44</time></span><div class='quote '><br>
Вот что-то в исходном состоянии заданного вопроса чего-то типа &quot;убедиться, что параллельные рёбра отсутствуют&quot; - не вижу.</div></div><br>
Здесь не понял тебя. Если после проверки на || ребер таких нет, то автоматически заданный граф НЕ содержит || ребер<br>
<br>
<span class="tag-color tag-color-named" data-value="red" style="color: red"><strong class='tag-b'>Я вот совсем НЕ выкупаю, зачем здесь ЧТО-ТО сортировать???&#33;</strong></span><br>
Берем СТЛ. Там ведь есть шаблон &quot;множество уникальных значений&quot; (сет или мап или еще как-то называется - вообще не суть). После считывания ребра (2 целых числа) ставим меньшее слева, а большее справа и запихиваем в множество. Но перед тем, как запихнуть, проверяем, а нет ли такого элемента в множестве. Если есть, значит попытка добавить дубликат, что равносильно тому, что в графе появилось || ребро - все, конец обработке&#33;<br>
<br>
<span class='tag-size' data-value='14' style='font-size:14pt;'><strong class='tag-b'><span class="tag-color tag-color-named" data-value="red" style="color: red">Зачем здесь что-то сортировать?????</span></strong></span> <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="2021-02-23T10:42:54+00:00">23.02.21, 10:42</time></span></span><br>
на всякий случай уточню относительно постановки задачи:<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=421203&view=findpost&p=3844901'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>FasterHarder &#064; <time class="tag-quote__quoted-time" datetime="2021-02-22T11:54:03+00:00">22.02.21, 11:54</time></span><div class='quote '>Надо проверить, содержит ли граф || ребра.</div></div><br>
т е ответом должно быть &quot;Да&quot; или &quot;Нет&quot;, т е не нужно находить эти || ребра, важен сам факт]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844913</guid>
        <pubDate>Tue, 23 Feb 2021 07:44:30 +0000</pubDate>
        <title>петли и параллельные ребра в неор.графе</title>
        <link>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844913</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=421203&view=findpost&p=3844908'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>FasterHarder &#064; <time class="tag-quote__quoted-time" datetime="2021-02-22T19:43:33+00:00">22.02.21, 19:43</time></span><div class='quote '>смущает другое - предложение отсортировать после ввода входных данных (на др.форуме была такая же идея). Но сортировка ведь далеко не самая быстрая операция.</div></div><br>
Чегой-то после-то? непосредственно в процессе...<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=421203&view=findpost&p=3844908'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>FasterHarder &#064; <time class="tag-quote__quoted-time" datetime="2021-02-22T19:43:33+00:00">22.02.21, 19:43</time></span><div class='quote '>встретилась петля 2 раза для одной вершины - конец обработке.</div></div><br>
Вот что-то в исходном состоянии заданного вопроса чего-то типа &quot;убедиться, что параллельные рёбра отсутствуют&quot; - не вижу. Тогда и этот этап - проверка на дубликат,- тоже распрекрасно выполняется в процессе ввода.]]></description>
        <author>Akina</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844911</guid>
        <pubDate>Mon, 22 Feb 2021 21:18:08 +0000</pubDate>
        <title>петли и параллельные ребра в неор.графе</title>
        <link>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844911</link>
        <description><![CDATA[MBo: В мап клади пары, отсортированные, как Akina сказал. Уже есть такая пара - всё, приехали. Обработка петель ничем не отличается]]></description>
        <author>MBo</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844908</guid>
        <pubDate>Mon, 22 Feb 2021 19:43:33 +0000</pubDate>
        <title>петли и параллельные ребра в неор.графе</title>
        <link>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844908</link>
        <description><![CDATA[FasterHarder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=421203&view=findpost&p=3844905'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2021-02-22T17:46:04+00:00">22.02.21, 17:46</time></span><div class='quote '>Конечно. Не просто &quot;можно считать&quot; - они таковые и есть... </div></div><br>
ок, понял, спс<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=421203&view=findpost&p=3844905'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2021-02-22T17:46:04+00:00">22.02.21, 17:46</time></span><div class='quote '>В неориентированном графе порядок вершин неважен. Так что обработать, и для вершин, где конечная точка меньше по индексу - перевернуть. И результат - отсортировать. </div></div><br>
про неор.граф понятно, что порядок не важен вершин, смущает другое - предложение отсортировать после ввода входных данных (на др.форуме была такая же идея). Но сортировка ведь далеко не самая быстрая операция. В моем варианте анализ происходит НА ЛЕТУ(&#33;) и в половине случаев обработка сразу прервется при нахождении хотя бы одной пары || ребер. Здесь же придется сначала ВСЕ прочитать, потом сортировать...не уверен, что это будет производительнее<br>
<br>
для учета петель ведь можно завести одномерный динамический массив, состоящий из &quot;а&quot; элементов (а - кол-во вершин графа). Обнулить все элементы и делать +1, когда встретилась петля. Как только стало в любом элемента == 2 - встретилась петля 2 раза для одной вершины - конец обработке.<br>
<br>
<br>
в общем насчет сортировки не уверен...+этих способов сортировки &quot;тысячи&quot;]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844905</guid>
        <pubDate>Mon, 22 Feb 2021 17:46:04 +0000</pubDate>
        <title>петли и параллельные ребра в неор.графе</title>
        <link>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844905</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=421203&view=findpost&p=3844901'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>FasterHarder &#064; <time class="tag-quote__quoted-time" datetime="2021-02-22T11:54:03+00:00">22.02.21, 11:54</time></span><div class='quote '>Вопрос: две петли одной вершины можно считать параллельными ребрами??</div></div><br>
Конечно. Не просто &quot;можно считать&quot; - они таковые и есть... <br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=421203&view=findpost&p=3844901'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>FasterHarder &#064; <time class="tag-quote__quoted-time" datetime="2021-02-22T11:54:03+00:00">22.02.21, 11:54</time></span><div class='quote '>2. Есть более совершенный алгоритм решения?</div></div><br>
В неориентированном графе порядок вершин неважен. Так что обработать, и для вершин, где конечная точка меньше по индексу - перевернуть. И результат - отсортировать.]]></description>
        <author>Akina</author>
        <category>Алгоритмы</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844901</guid>
        <pubDate>Mon, 22 Feb 2021 11:54:03 +0000</pubDate>
        <title>петли и параллельные ребра в неор.графе</title>
        <link>https://forum.sources.ru/index.php?showtopic=421203&amp;view=findpost&amp;p=3844901</link>
        <description><![CDATA[FasterHarder: Всем хай&#33; Сходу к делу&#33;<br>
<br>
Определение:<br>
Ребра, имеющие одинаковые концевые вершины, называются <strong class='tag-b'>параллельными</strong>.<br>
Например, ребро, соединяющее вершины №4 и №8 и ребро, соединяющее вершины №8 и №4 - являются параллельными. Тут вроде все понятно. Также в графе может быть более 2ух параллельных ребер для двух вершин.<br>
<br>
Определение:<br>
Ребро, концевые вершины которого совпадают, называется <strong class='tag-b'>петлей</strong>. Например, задается как 3-3, т е ребро выходит из вершины №3 и заходит в вершину №3.<br>
<br>
<strong class='tag-b'><span class="tag-color tag-color-named" data-value="blue" style="color: blue">Вопрос</span></strong>: две петли одной вершины можно считать параллельными ребрами??<br>
-----------------------------------------------------<br>
Второй вопрос.<br>
Дано несколько сотен вершин неориентированного графа. + задаются все ребра графа через вершины. Надо проверить, содержит ли граф || ребра.<br>
формат входных данных типа такого:<br>
a b<br>
1 2<br>
3 17<br>
4 6<br>
2 1<br>
5 5<br>
...<br>
а - кол-во вершин графа, b - кол-во ребер.<br>
<br>
Алгоритм. Можно, конечно, тупо выделить память для динамической матрицы размером a x a (ну, т е формировать матрицу смежности) и при считывании очередного ребра в соот-щей ячейке ставить 1, как будто-то это не ребро, а ДУГА + параллельно проверять симметричную ячейку, если и там и там стоит по 1 - все, конец обработке - граф содержит || ребра.<br>
1. А, что делать с петлями??<br>
2. Есть более совершенный алгоритм решения?<br>
<br>
спс за внимание]]></description>
        <author>FasterHarder</author>
        <category>Алгоритмы</category>
      </item>
	
      </channel>
      </rss>
	