<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://acm.khpnets.info/w39/index.php?action=history&amp;feed=atom&amp;title=ACMP_503</id>
	<title>ACMP 503 - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://acm.khpnets.info/w39/index.php?action=history&amp;feed=atom&amp;title=ACMP_503"/>
	<link rel="alternate" type="text/html" href="https://acm.khpnets.info/w39/index.php?title=ACMP_503&amp;action=history"/>
	<updated>2026-05-13T12:33:10Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://acm.khpnets.info/w39/index.php?title=ACMP_503&amp;diff=1899&amp;oldid=prev</id>
		<title>Ctrlalt: Новая страница: «== Ссылка на задачу == * [http://acmp.ru/?main=task&amp;id_task=503 ACMP #503 &amp;mdash; Бюро путешествий]  == Комментарии ==  * …»</title>
		<link rel="alternate" type="text/html" href="https://acm.khpnets.info/w39/index.php?title=ACMP_503&amp;diff=1899&amp;oldid=prev"/>
		<updated>2015-07-31T21:48:36Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «== Ссылка на задачу == * [http://acmp.ru/?main=task&amp;amp;id_task=503 ACMP #503 — Бюро путешествий]  == Комментарии ==  * …»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Ссылка на задачу ==&lt;br /&gt;
* [http://acmp.ru/?main=task&amp;amp;id_task=503 ACMP #503 &amp;amp;mdash; Бюро путешествий]&lt;br /&gt;
&lt;br /&gt;
== Комментарии ==&lt;br /&gt;
&lt;br /&gt;
* Вид подзадачи: dCost[mask] &amp;amp;mdash; ответ на задачу только для планет, заданных маской mask; dFirst[mask] &amp;amp;mdash; номер первой планеты в маршруте, обеспечивающем ответ dCost[mask]. &lt;br /&gt;
* Рекуррентная формула: При расчёте dCost[mask] перебираем все планеты из mask. Пусть на первом месте находится i-я планета, тогда остальные заданы маской mask&amp;#039; = mask &amp;amp; ~(1 &amp;lt;&amp;lt; i).&lt;br /&gt;
: В данном случае величина штрафа равна dCost[mask&amp;#039;] + (planet[i].cFrom * pPlanetsIn[mask&amp;#039;]) + (planet[i].pFrom * cPlanetsIn[mask&amp;#039;]) + XTo[mask&amp;#039;], где XTo[mask&amp;#039;] &amp;amp;mdash; количество чатлан, прилетающих на планеты mask&amp;#039; (cTo[mask&amp;#039;]), если планета i &amp;amp;mdash; пацакская, либо количество пацаков, прилетающих на планеты mask&amp;#039; (pTo[mask&amp;#039;]), если планета i &amp;amp;mdash; чатланская. dCost[mask] определяется как минимальный из возможных штрафов.&lt;br /&gt;
: Значения cPlanetsIn[], pPlanetsIn[], cTo[], pTo[] для всех возможных масок нужно посчитать заранее.&lt;br /&gt;
* База рекурсии: dCost[0] = 0.&lt;br /&gt;
* Вид ответа: dCost[(1 &amp;lt;&amp;lt; n) - 1], маршрут восстанавливается по dFirst[]. Сложность O(2&amp;lt;sup&amp;gt;N&amp;lt;/sup&amp;gt; &amp;amp;times; N).&lt;br /&gt;
&lt;br /&gt;
Для удовлетворения лимита памяти элементы dCost[], cTo[] и pTo[] должны иметь тип short, dFirst[] &amp;amp;mdash; тип char. Значения cPlanetsIn[] и pPlanetsIn[] можно не сохранять, а пересчитывать за O(N) для каждой mask (но не отдельно для всех mask&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
Второй пример содержит русские буквы &amp;#039;С&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
[[Category: Сборник задач: ACMP]]&lt;br /&gt;
[[Category: Задачи: Динамическое программирование &amp;amp;mdash; подмножество]]&lt;br /&gt;
[[Category: Задачи: Жёсткие ограничения]]&lt;/div&gt;</summary>
		<author><name>Ctrlalt</name></author>
	</entry>
</feed>