<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Форум 'Алгоритмы' на RSDN</title>
    <link>http://rsdn.org/Forum/alg/</link>
    <description></description>
    <category>alg</category>
    <language>ru-ru</language>
    <copyright>Copyright ©, RSDN, 2001-2007</copyright>
    <webMaster>forum@rsdn.org</webMaster>
    <generator>RSDN RSS Generator 1.3</generator>
    <image>
      <url>http://rsdn.org/rsdn.gif</url>
      <title>RSDN</title>
      <link>http://rsdn.org</link>
    </image>
    <lastBuildDate>Thu, 30 Apr 2026 04:29:27 GMT</lastBuildDate>
    <ttl>5</ttl>
	<item>
		<title>Анонимное проверяемое голосование - есть ли решение?</title>
		<link>http://rsdn.org/Forum/alg/9083265.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/alg/9083265</guid>
		<comments>http://rsdn.org/Forum/alg/9083265</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9083265</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9083265</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9083265</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Вопрос глобальной значимости &amp;mdash; нашли ли решение, чтобы голосование было и анонимным и проверяемым?&lt;br /&gt;
&lt;br /&gt;
Как это выглядит с точки зрения простого избирателя? Т.е. что ему нужно делать, чтобы лично и проголосовать и потом проверить. Да еще так, чтобы начальник не мог с ним войти в онлайн-кабинет (или куда там) и посмотреть правильно ли проголосовал (не крыса ли).&lt;br /&gt;
&lt;br /&gt;
Вроде пишут что нашли. Но сколько я не проверял &amp;mdash; всегда была дыра. И гомоморфное шифрование и слепая подпись &amp;mdash; а в итоге все-равно фига получается.&lt;br /&gt;
&lt;br /&gt;
Просто нужно одновременно как бы противоречивые требования:&lt;br /&gt;
&lt;br /&gt;
1. Чтобы тебя не могли взять за яйца, т.е. чтобы начальник не мог проверить за кого ты проголосовал.&lt;br /&gt;
2. При этом чтобы ты лично проверить себя таки мог.&lt;br /&gt;
3. Чтобы админы не могли добавлять левых людей, несуществующих. В идеале чтобы админы не могли повлиять на процесс, даже если они не честные.&lt;br /&gt;
&lt;br /&gt;
Все таки позволяет математика или нет?&lt;br /&gt;
&lt;br /&gt;
У меня, получается, такой вариант придумался.&lt;br /&gt;
&lt;br /&gt;
1. Человеку выдают девайс (сертифицированный). На девайсе есть кнопка сгенерить новый публичный идентификатор &amp;mdash; случайное число. Идентификатор выводится на экране в виде 10 слов (для простоты запоминания) или даже согласованное предложение из 10 слов (около 16 байт энтропии &amp;mdash; норм). Девайс выдается или покупается анонимно, можно купить хоть 10 штук разных.&lt;br /&gt;
&lt;br /&gt;
2. Чел. приходит в избирательный участок, заходит по паспорту. Войти можно только 1 раз за голосование (второй раз не пропустят). Цель участка (чего нельзя сделать удаленно) &amp;mdash; чтобы никто другой не мог увидеть его текущий идентификатор. На участке контролируют чтобы чел был один и не фоткал идентификатор на телефон. При этом идентификатор камеры не видят.&lt;br /&gt;
&lt;br /&gt;
3. Чел. жамкает кнопку на девайсе, генерит идентификатор. Может генерить хоть 10 раз. Но значение имеет только последний. Нужно чтобы жмякнул кнопку хотя бы один раз уже в участке, к примеру, без этого не отроются двери в кабинку.&lt;br /&gt;
&lt;br /&gt;
4. Подходит с этим брелоком (с идентификатор на экране) к голосомату. Выбирает за кого голосовать, подносит брелок (там NFC).&lt;br /&gt;
&lt;br /&gt;
5. Система учитывает голос и связывает его с публичным идентификатором. После чего дает распечатку &amp;mdash; твой голос (на против него будет публичный идентификатор &amp;mdash; ты проверяешь что совпадает с данными на экране брелока). НО! кроме этого будут и все другие варианты выбора, но напротив них будут публичные идентификаторы случайных людей. Это нужно чтобы у тебя не было доказательства за кого ты проголосовал &amp;mdash; банные с экрана брелока только в памяти твоей.&lt;br /&gt;
&lt;br /&gt;
Ты визуально еще раз проверяешь что слова совпадают.&lt;br /&gt;
&lt;br /&gt;
6. Выходишь из кабинки, для этого нужно сбросить брелок (идентификатор остается на распечатке &amp;mdash; но только ты знаешь какой твой).&lt;br /&gt;
&lt;br /&gt;
Вроде ОК. Потом публикуют два списка:&lt;br /&gt;
&lt;br /&gt;
1. Поименный список тех, кто был на участке &amp;mdash; время и номер участка. Это по данным турникета на входе. Можно либо имя либо просто адрес. Это позволяет не дать возможность создания мертвых душ.&lt;br /&gt;
2. Список публичных ID а так-же какой выбор был сделан этим ID (ты сможешь сверить, твой ID записан в квитанции-распечатке на против твоего выбора).&lt;br /&gt;
&lt;br /&gt;
Т.е. вроде все удалось решить кроме одного &amp;mdash; нельзя проголосовать удаленно из дома &lt;img border='0' width='15' height='15' src='//rsdn.org/Forum/images/frown.gif' /&gt;&lt;/div&gt;
				
		</description>
		
		<category>alg</category>
		<pubDate>Tue, 28 Apr 2026 04:14:58 GMT</pubDate>
		
			<author>Shmj &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>11</slash:comments>
		
	</item>

	<item>
		<title>Дерево с O(1) доступом по ID</title>
		<link>http://rsdn.org/Forum/alg/9042075.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/alg/9042075</guid>
		<comments>http://rsdn.org/Forum/alg/9042075</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9042075</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9042075</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9042075</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;У меня есть дерево. То есть нулевой узел с дочерними узлами и каждый дочерний содержит свои дочерние и так далее&lt;br /&gt;
При создании ноды пользователю отдается unsigned int ID. И вот по этому ID нужен доступ за константное время. Идеально было бы как-то отразить дерево в вектор и чтоб ID был номером элемента в векторе. Но как-то криво выходит. Две структуры для одного и того же. Криво.&lt;br /&gt;
Еще вариант, что ID &amp;mdash; это собственно сам указатель, но не нравится он мне&lt;br /&gt;
Какие есть варианты?&lt;/div&gt;
				
		</description>
		
		<category>alg</category>
		<pubDate>Fri, 09 Jan 2026 09:47:32 GMT</pubDate>
		
			<author>Hоmunculus &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>39</slash:comments>
		
	</item>

	<item>
		<title>Как лучше сжать данные разрешенных ходов для игры?</title>
		<link>http://rsdn.org/Forum/alg/9019249.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/alg/9019249</guid>
		<comments>http://rsdn.org/Forum/alg/9019249</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9019249</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9019249</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9019249</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Начало тут: &lt;a class=" tips m" href="https://rsdn.org/forum/etude/9018754.flat" rel="#FHDzfo" target="_blank" title="Игра Мельница и хитрый знахарь"&gt;https://rsdn.org/forum/etude/9018754.flat&lt;div class="tooltip" id="FHDzfo"&gt;Автор: Shmj&lt;br /&gt;Дата: 15.11 12:34&lt;/div&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
В общем то классическая мельница 3*3, но с условием запрета обратного хода (т.е. походив фишкой, потом не можешь отменить/пойти взад этой последней фишкой).&lt;br /&gt;
&lt;br /&gt;
Интересно что если нет этого условия &amp;mdash; список состояний (и разрешенных ходов из данного состояния) в простом массиве занимает около 180 Кб. &amp;mdash; что норм. Т.е. даже об этом не думал, чтобы как-то сжимать.&lt;br /&gt;
&lt;br /&gt;
А вот если добавить правило запрета обратного хода &amp;mdash; то чтобы правильно походило (с учетом запретов себя и противника) &amp;mdash; полный список всех состояний и данных куда можно ходить &amp;mdash; уже занимает &lt;b&gt;15.9 MB&lt;/b&gt;, что проблема. Т.е. уже загружать &amp;mdash; быстро не откроется...&lt;br /&gt;
&lt;br /&gt;
Что можно сделать. Очевидное &amp;mdash; это симметрия. Левая и правая клеточка равнозначны. А вот верх и низ &amp;mdash; уже нет, т.к. там зависит от игрока.&lt;br /&gt;
&lt;br /&gt;
Т.е. за счет симметричности левого и правого &amp;mdash; можно ужать в 2 раза.&lt;br /&gt;
&lt;br /&gt;
Далее, я пишут в таком виде:&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;{
  red: [A1, A2, A3],
  black: [B1, B2, B3],
  redForbidden: &lt;span class='kw'&gt;null&lt;/span&gt;,
  blackForbidden: &lt;span class='kw'&gt;null&lt;/span&gt;,
  transitions: [
    [B1, C1],
    [B2, C1],
    [B2, C2],
    [B2, C3],
    [B3, C3],
  ],
}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
т.е. текущее состояние и transitions &amp;mdash; разрешенные переходы.&lt;br /&gt;
&lt;br /&gt;
Но состояний то вроде не много, менее 16 тыс., значит влезет в 2 байта. Первые 4 поля значит &amp;mdash; 8 байт с лихвой. Ну и преходы.&lt;br /&gt;
&lt;br /&gt;
Еще вариант вычислять на лету, но будет нагружать слабые телефоны.&lt;/div&gt;
				
		</description>
		
		<category>alg</category>
		<pubDate>Sun, 16 Nov 2025 19:16:37 GMT</pubDate>
		
			<author>Shmj &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>31</slash:comments>
		
	</item>

	<item>
		<title>задача о таблетках</title>
		<link>http://rsdn.org/Forum/alg/9012187.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/alg/9012187</guid>
		<comments>http://rsdn.org/Forum/alg/9012187</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9012187</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9012187</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9012187</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Возраст, увы, у меня почтенный, а поэтому приходится ежедневно принимать таблетки.&lt;br /&gt;
&lt;br /&gt;
Таблеток N видов. Принимаю я ровно 1 таблетку каждого вида в день (это действительно так).&lt;br /&gt;
&lt;br /&gt;
Таблетки в блистерах или флаконах. В одних блистерах 10 штук, в других 15, во флаконах иные значения.&lt;br /&gt;
&lt;br /&gt;
Когда блистер или флакон заканчивается, я заменяю его на новый.&lt;br /&gt;
&lt;br /&gt;
И вот сегодня одновременно закончились 2 разных блистера. Не помню, было ли такое когда-то раньше.&lt;br /&gt;
&lt;br /&gt;
Отсюда задача &amp;mdash; по исходному набору блистеров/флаконов найти день, когда одновременно закончатся хотя бы 2 блистера/флакона. Разумеется, у меня достаточно новых блистеров/флаконов.&lt;br /&gt;
&lt;br /&gt;
Вариант 1. В день X я начинаю прием, все блистеры/флаконы полные.&lt;br /&gt;
&lt;br /&gt;
Вариант 2. В день X я начинаю прием, но блистеры/флаконы неполные, в каждом осталось свое количество таблеток.&lt;br /&gt;
&lt;br /&gt;
Найти день Y, в который закончатся хотя бы 2 блистера/флакона. Для определенности в течение некоторого срока, скажем, года. Если такого не будет, ответ &amp;mdash; нет.&lt;br /&gt;
&lt;br /&gt;
Программистское решение. Оно тривиально для обоих вариантов. Просто в цикле делаем T[i]-- каждому блистеру/флакону и смотрим, не получили ли мы хотя бы два нуля на данной итерации цикла. В общем, точная калька того, что я делаю в реальности.&lt;br /&gt;
&lt;br /&gt;
Математическое решение для варианта 1. Оно тоже простое &amp;mdash; нужно взять минимальное из НОК для пар блистеров/флаконов. Если, скажем, в одном блистере 10 таблеток,  в другом 15, то НОК == 30, и через 30 дней я полностью съем 3 блистера первого лекарства и 2 &amp;mdash; второго.&lt;br /&gt;
&lt;br /&gt;
Существует ли математическое решение для варианта 2 ?&lt;br /&gt;
&lt;br /&gt;
Не надо думать, что вариант 2 получился из варианта 1 спустя сколько-то дней, то есть начал я с полных блистеров/флаконов. Нет. Просто в день X в каждом блистере/флаконе Ti таблеток, а как их количества стали такими &amp;mdash; не обсуждается.&lt;/div&gt;
				
		</description>
		
		<category>alg</category>
		<pubDate>Thu, 30 Oct 2025 13:20:30 GMT</pubDate>
		
			<author>Pavel Dvorkin &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>4</slash:comments>
		
	</item>

	<item>
		<title>Нечеткое сравнение слов.</title>
		<link>http://rsdn.org/Forum/alg/9006743.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/alg/9006743</guid>
		<comments>http://rsdn.org/Forum/alg/9006743</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=9006743</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/9006743</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=9006743</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Такая задача.&lt;br /&gt;
&lt;br /&gt;
Есть набор из названий брендов (озвучено &amp;mdash; порядка миллиона).&lt;br /&gt;
Есть входная строка, например "планшет Samsung"&lt;br /&gt;
&lt;br /&gt;
Необходимо без ИИ сопоставить бренд из словаря этой строке.&lt;br /&gt;
Задача выглядит простой для решения &amp;mdash; произвести токенизацию строки и затем поиск в хеш-таблице, где хранятся бренды.&lt;br /&gt;
&lt;br /&gt;
Затем даётся дополнительное ТЗ &amp;mdash; необходимо сделать поиск нечётким, т.е. с возможными опечатками.&lt;br /&gt;
&lt;br /&gt;
И сделать поиск эффективным, т.е. придумать такой алгоритм, который не стал бы последовательно перебирать все слова используя, допустим, стороннюю библиотеку поиска дистанции между словами (есть полно готовых таких алгоритмов).&lt;br /&gt;
&lt;br /&gt;
У меня есть решение, но мне банально интересно, к какой сложности относятся подобные задачи? ))&lt;/div&gt;
				
		</description>
		
		<category>alg</category>
		<pubDate>Fri, 17 Oct 2025 01:22:18 GMT</pubDate>
		
			<author>vdimas &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>23</slash:comments>
		
	</item>

	<item>
		<title>Найден способ считать кратчайшие пути быстрее Дейкстры?</title>
		<link>http://rsdn.org/Forum/alg/8976541.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/alg/8976541</guid>
		<comments>http://rsdn.org/Forum/alg/8976541</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8976541</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8976541</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8976541</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;На днях прошла новость: &lt;a class="m" href="https://arxiv.org/abs/2504.17033" target="_blank"&gt;Breaking the Sorting Barrier for Directed Single-Source Shortest Paths&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class='q'&gt;&lt;p&gt;Классический Дейкстра устроен так: мы храним вершины в приоритетной очереди и итеративно выбираем ближайшую, проверяя рёбра и обновляя расстояния, если путь через текущее ребро короче. Узкое место тут как раз в необходимости постоянно поддерживать упорядоченность большой очереди вершин.&lt;br /&gt;
&lt;br /&gt;
Из-за этой упорядоченности и возник так называемый «барьер сортировки». Считалось, что перебить его невозможно. &lt;br /&gt;
&lt;br /&gt;
Но вот, что сделали авторы тут: &lt;br /&gt;
&lt;br /&gt;
1. Делим задачу на подзадачи с ограничением по максимальному расстоянию, до которого считаем пути.&lt;br /&gt;
2. Сжимаем «фронтир»: из вершин на границе уже найденных путей оставляем только небольшое число ключевых (пивотов).&lt;br /&gt;
3. Рекурсивно обрабатываем только пивоты и их ближайшие вершины, избегая полной сортировки.&lt;br /&gt;
4. Для остальных вершин добиваем расстояния несколькими шагами по всем рёбрам (метод в духе Беллмана–Форда).&lt;br /&gt;
5. Повторяем процесс, постепенно уточняя расстояния до всех вершин.&lt;br /&gt;
&lt;br /&gt;
Итого, сложность Дейкстры – O(m + n log n), а BMSSP – O(m log^(2/3) n). Во втором случае логарифм растет заметно медленнее. &lt;br /&gt;
&lt;br /&gt;
Что это все значит для ML? Может показаться, что ничего. Но на самом деле алгоритм Дейкстры вездесущий. Например: &lt;br /&gt;
&lt;br /&gt;
– В графовых нейросетях на основе расстояний между вершинами часто вычисляются самые важные фичи. &lt;br /&gt;
– Для всяких ML-алгоритмов для логистики просто незаменимо. &lt;br /&gt;
– И даже в RL есть применение. Например, при обучении роботов среда может быть представлена как граф состояний, в котором оптимальная политика – это кратчайший путь.&lt;/p&gt;&lt;/blockquote&gt;
Отсюда: &lt;a class="telegram" data-message-id="/data_secrets/7587" href="https://t.me/data_secrets/7587"&gt;Исследователи из Пекина предложили алгоритм поиска кратчайших путей, который обходит Дейкстру&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Здесь основная идея &amp;mdash; это гибрид из алгоритма Дейкстры и алгоритма Беллмана-Форда. &lt;br /&gt;
&lt;br /&gt;
Но если я все правильно понял, то в общем случае&lt;br /&gt;
*   Новый алгоритм: O(m log²/³ n)&lt;br /&gt;
*   Алгоритм Дейкстры: O(m + n log n)&lt;br /&gt;
&lt;br /&gt;
1.  Разреженные графы (Sparse Graphs): В таких графах количество рёбер m сопоставимо с количеством вершин n, то есть m ≈ n.&lt;br /&gt;
    *   Новый алгоритм: O(n log²/³ n)&lt;br /&gt;
    *   Алгоритм Дейкстры: O(n + n log n) = O(n log n)&lt;br /&gt;
    *   Вывод: В этом случае n log²/³ n растёт медленнее, чем n log n, поэтому новый алгоритм быстрее. Именно это и является его главным достижением, как указано в документе.&lt;br /&gt;
&lt;br /&gt;
2.  Плотные графы (Dense Graphs): В таких графах количество рёбер m близко к максимально возможному, то есть m приближается к n².&lt;br /&gt;
    *   Новый алгоритм: O(n² log²/³ n)&lt;br /&gt;
    *   Алгоритм Дейкстры: O(n² + n log n) = O(n²)&lt;br /&gt;
    *   Вывод: В этом случае n² растёт медленнее, чем n² log²/³ n. Поэтому на плотных графах алгоритм Дейкстры будет быстрее.&lt;br /&gt;
&lt;br /&gt;
Получается что новый алгоритм эффективнее алгоритма Дейкстры на разреженных графах. Однако для плотных графов классический алгоритм Дейкстры остаётся более быстрым решением.&lt;br /&gt;
&lt;br /&gt;
Так?&lt;/div&gt;
				
		</description>
		
		<category>alg</category>
		<pubDate>Mon, 11 Aug 2025 19:51:32 GMT</pubDate>
		
			<author>BlackEric &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>1</slash:comments>
		
	</item>

	<item>
		<title>Алгоритмы и структуры данных</title>
		<link>http://rsdn.org/Forum/alg/8970378.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/alg/8970378</guid>
		<comments>http://rsdn.org/Forum/alg/8970378</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8970378</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8970378</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8970378</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;&lt;a class="m" href="https://ru.algorithmica.org/cs/" target="_blank"&gt;https://ru.algorithmica.org/cs/&lt;/a&gt;&lt;br /&gt;
На все случаи жизни... &lt;br /&gt;
И даже математика и даже геометрия&lt;br /&gt;
&lt;br /&gt;
Написано в конце:&lt;br /&gt;
&lt;blockquote class='q'&gt;&lt;p&gt;В этот раздел с течением времени будут переноситься статьи с алгокода, емакса и старой алгоритмики.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;
				
		</description>
		
		<category>alg</category>
		<pubDate>Sun, 27 Jul 2025 04:18:16 GMT</pubDate>
		
			<author>LaptevVV &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>0</slash:comments>
		
	</item>

	<item>
		<title>Хранилище интервалов</title>
		<link>http://rsdn.org/Forum/alg/8970278.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/alg/8970278</guid>
		<comments>http://rsdn.org/Forum/alg/8970278</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8970278</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8970278</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8970278</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Всем привет.&lt;br /&gt;
Нужна помощь коллег.&lt;br /&gt;
&lt;br /&gt;
Я ищу структуру данных, которая хранит в себе диапазоны, задаваемые координатой начала и конца, и поддерживает операции&lt;br /&gt;
  * добавить диапазон&lt;br /&gt;
  * удалить диапазон&lt;br /&gt;
  * Найти все диапазоны, содержащие некоторую точку.&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
Хотелось бы, чтобы эти операции работали быстрее, чем за линейное время.&lt;br /&gt;
Гугл предлагает дерево отрезков, но, если я правильно понимаю, добавление и удаление там в худшем случае будет как раз линейным.&lt;br /&gt;
&lt;br /&gt;
В общем, нужна помощь коллективного разума&lt;/div&gt;
				
		</description>
		
		<category>alg</category>
		<pubDate>Sat, 26 Jul 2025 18:13:49 GMT</pubDate>
		
			<author>DTF &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>21</slash:comments>
		
	</item>

	<item>
		<title>Трансформация дерева с простыми операциями</title>
		<link>http://rsdn.org/Forum/alg/8944239.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/alg/8944239</guid>
		<comments>http://rsdn.org/Forum/alg/8944239</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8944239</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8944239</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8944239</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Привет&lt;br /&gt;
Пытаюсь починить парсер нашего рабочего доморощенного язычка и внезапно понял что мозг атрофировался за годы роботы в кровавом энтерпрайсе.&lt;br /&gt;
&lt;br /&gt;
Итак, задача &amp;mdash; есть дерево в котором два типа нодов &amp;mdash; листья со значениями и узлы с операциями. Пусть операций два типа &amp;mdash; сложение и умножение.&lt;br /&gt;
Надо заполнить структуру данных, которая содержит группы операций умножения, разделенные группами сложения, это неоходимо для заполнения другой структуры данных, которая потом отправится на удаленный сервак.&lt;br /&gt;
&lt;br /&gt;
Т.е. выражение, распаршеное в дерево:&lt;br /&gt;
(a+b)*(c+d)*e должно превратиться в такое a*c*e+a*d*e+b*c*e+b*d*e.&lt;br /&gt;
&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;      *
     / \
    *   e
   / \
  +   +
 / \ / \
a  b c  d&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
в&lt;br /&gt;
&lt;pre class='c'&gt;&lt;code&gt;                        +
              ___________|___________
             /                       \
            +                         +
         ___|___                   ___|___
        /       \                 /       \
      (*       (* )            (* )      (* )
     /   \    /    \           /    \    /    \
   (* )  e   (* )  e         (* )   e  (* )   e
   /  \       /  \           /  \      /  \
  a    c     a    d         b    c    b    d&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
Какие идеи?&lt;br /&gt;
Спасибо.&lt;/div&gt;
				
		</description>
		
		<category>alg</category>
		<pubDate>Wed, 04 Jun 2025 11:02:23 GMT</pubDate>
		
			<author>Flem1234 &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>3</slash:comments>
		
	</item>

	<item>
		<title>Карацюба или Фюрер?</title>
		<link>http://rsdn.org/Forum/alg/8935187.1</link>
		<guid isPermaLink="true">http://rsdn.org/Forum/alg/8935187</guid>
		<comments>http://rsdn.org/Forum/alg/8935187</comments>
		<wfw:comment>http://rsdn.org/Forum/PostRssComment.aspx?mid=8935187</wfw:comment>
		<wfw:commentRss>http://rsdn.org/Forum/RSS/8935187</wfw:commentRss>
		<trackback:ping>http://rsdn.org/Forum/Trackback.aspx?mid=8935187</trackback:ping>
		<description>
			
					&lt;div style="@import url(http://rsdn.org/Forum/Forum.css);"&gt;Здравствуйте!&lt;br /&gt;
&lt;br /&gt;
Есть такие алгоритмы для умножения чисел:&lt;br /&gt;
Алгоритм Фюрера &amp;mdash; &lt;a class="wikipedia m" href="https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%A4%D1%8E%D1%80%D0%B5%D1%80%D0%B0" target="_blank"&gt;https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%A4%D1%8E%D1%80%D0%B5%D1%80%D0%B0&lt;/a&gt;&lt;br /&gt;
Алгоритм Карацубы &amp;mdash; &lt;a class="wikipedia m" href="https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%9A%D0%B0%D1%80%D0%B0%D1%86%D1%83%D0%B1%D1%8B" target="_blank"&gt;https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%9A%D0%B0%D1%80%D0%B0%D1%86%D1%83%D0%B1%D1%8B&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Какой из них лучше использовать?&lt;/div&gt;
				
		</description>
		
		<category>alg</category>
		<pubDate>Sat, 17 May 2025 14:44:04 GMT</pubDate>
		
			<author>Marty &lt;forum@rsdn.org&gt;</author>
		
		
			<slash:comments>15</slash:comments>
		
	</item>
</channel>
</rss>
