<?xml version="1.0" encoding="windows-1251" ?><rss version="2.0">
	<channel>
		<title>Комментарии к "Круговой маршрут"</title> 
		<link>http://petruchek.info/problems/circular-route.rss</link> 
		<description>Трансляция комментариев с сайта petruchek.info. Перепечатка запрещена.</description> 
		<generator>CMS by Webous.com</generator> 
		<lastBuildDate>Fri, 10 Apr 2015 15:44:24 GMT</lastBuildDate> 
		<item>
			<guid isPermaLink="true">http://petruchek.info/problems/circular-route.html#comm.3580</guid> 
			<link>http://petruchek.info/problems/circular-route.html#comm.3580</link> 
			<pubDate>Fri, 10 Apr 2015 15:44:24 GMT</pubDate> 
			<title><![CDATA[Комментарий пользователя: аноним]]></title>
			<description><![CDATA[П 3.2 и 3.3 можно упростить.<br />
<br />
3.2<br />
   После п. 3.1. весь маршрут - это последовательность вершин, где<br />
   последовательно идут вершины с приростом и расходом.<br />
<br />
   На этом шаге объединяем *ВСЕ* пары вершин (пара начинается с вершины<br />
   с приростом - если после объединенная вершина будет с приростом, то<br />
   можно гарантировать, что во внутренних вершинах количество бензина<br />
   не упадет ниже чем в начале обьединенной вершины).<br />
<br />
   Таким образом уменьшаем количество вершин вдвое.<br />
<br />
   Доказательство того, после обьединения останутся вершины с приростом<br />
   прежнее.<br />
<br />
3.3.<br />
   Выполняем п 3.1 и 3.2 до тех пор пока не останется две вершины.<br />
   Одна с приростом, другая с расходом. Начинаем двигатся с вершины<br />
   с приростом.]]></description> 
		</item>
		<item>
			<guid isPermaLink="true">http://petruchek.info/problems/circular-route.html#comm.3579</guid> 
			<link>http://petruchek.info/problems/circular-route.html#comm.3579</link> 
			<pubDate>Fri, 10 Apr 2015 12:18:47 GMT</pubDate> 
			<title><![CDATA[Комментарий пользователя: аноним (Иван)]]></title>
			<description><![CDATA[Уточнение по поводу п. 3.2:<br />
Объединять нужно пары вершин у которых в первой прирост, а во второй расход. (Чтоб внутри объединенной вершины количество топлива не падало ниже, чем оно было вначале)<br />
<br />
И поэтому еще в доказательстве существования нечетные вершины с пиростом, а четные с расходом.]]></description> 
		</item>
		<item>
			<guid isPermaLink="true">http://petruchek.info/problems/circular-route.html#comm.3578</guid> 
			<link>http://petruchek.info/problems/circular-route.html#comm.3578</link> 
			<pubDate>Fri, 10 Apr 2015 11:18:27 GMT</pubDate> 
			<title><![CDATA[Комментарий пользователя: аноним (Иван)]]></title>
			<description><![CDATA[1. Подготовка<br />
<br />
    Пусть есть всего n станций заправки, назовем их вершинами.<br />
    <br />
    На каждой вершине i (in [1 .. n]) машина заправляется на a[i] и чтоб доехать<br />
    до следующей вершины тратит b[i] бензина.<br />
<br />
    Из условия:<br />
        a[1] + .. + a[n] = b[1] + .. + b[n]     <br />
        <br />
    или<br />
        (a[1] + .. + a[n]) - (b[1] + .. + b[n]) = 0   (*)<br />
        <br />
    Обозначим <br />
        c[i] = a[i] - b[i],<br />
<br />
        т.е. на сколько изменится количество топлива в баке, когда машина<br />
        заправится в вершине i и проедет до следующей вершины.<br />
        <br />
        Тогда (*) преобразуется в <br />
        <br />
        с[1] + .. + c[n] = 0    (**)<br />
        <br />
    Если c[i] &gt;= 0, то топлива прибавилось или не изменилось (далее -- прирост)<br />
    Если c[i] &lt; 0, то топлива уменьшилось (далее -- расход)<br />
    <br />
        <br />
<br />
2. Несколько рассуждений<br />
    <br />
    Нельзя начать с вершины, где c[i] &lt; 0 или последовательности вершин, <br />
    где c[i] = 0, за которыми следует вершина, где c[i] &lt; 0. (изначально <br />
    бак пустой).<br />
    <br />
    Если несколько вершин подряд идут с  с[i] &gt;= 0, то начинать нужно с<br />
    самой первой вершины. Если она пропустит несколько вершин в начале<br />
    такой последовательности то<br />
        - Не сможет закончить маршут, если среди пропущенных были вершины c[i]&gt;0<br />
            <br />
            По условию машина заканчивает маршрут с пустым баком, соответственно<br />
            если у нее будет прирост в конце маршрута (вершины с[i]&gt;0, которые<br />
            она пропустила), то когда она подъедет к первой вершине<br />
            в последовательности, у нее должно быть отрицательное количество<br />
            бензина;<br />
        <br />
        - ничего не выиграет, если пропустит только вершины, где c[i] = 0.<br />
            <br />
3. Как найти нужную вершину:<br />
<br />
    3.1 Последовательности вершин в которых идет прирост (c&gt;=0) можно считать<br />
        одной вершиной, в которой прирост равен сумме приростов во всех этих <br />
        вершинах.<br />
        <br />
        Аналогично последовательности вершин для которых идет расход (c&lt;0)<br />
        можно считать одной вершиной с расходом равным сумме расходов<br />
        по всем вершинам.<br />
        <br />
        После объединения каждой описанной последовательности в одну вершину<br />
        маршрут представляется попеременно вершинами с приростом и расходом.<br />
        Количество вершин в которых идет прирост равно количеству вершин<br />
        в которых идет расход.<br />
        <br />
        <br />
    3.2 Что нужно делать: <br />
            - объединяем соседние вершины (с приростом и расходом) в которых<br />
              прирост больше либо равен расходу.<br />
            - после этого объединения образуется последовательная пара<br />
              вершин в которых происходит прирост. Объединяем их в одну<br />
              вершину с приростом, согласно п 3.1.<br />
        <br />
        Доказательство того, что существуют соседние вершины, в которых<br />
        прирост больше либо равен расходу (От противного).<br />
            <br />
            Пусть у нас есть 2*n вершин (после всех объединений, как в п 3.1)<br />
            и для каждой пары соседних вершин i (i in 1..n), расход превышает<br />
            прирост, т.е.<br />
            <br />
                c[2i-1] + с[2i] &lt; 0         (1)<br />
<br />
            Сложив все неравенства (1) получаем<br />
                c[1] + c[2] + .. + c[2n] &lt; 0    (2)<br />
                <br />
            Неравенство (2) противоречит условию задачи (**), в котором сказано,<br />
            что машина потратит столько-же бензина на сколько она заправится.<br />
            Из этого следует, хотя-бы для одной последовательной пары вершин<br />
            прирост будет не ниже чем расход.<br />
                <br />
    3.3 Выполняем п. 3.2 до тех пор, пока не останется 2 вершины -<br />
        одна с приростом,  другая с расходом. Причем из условия следует,<br />
        что прирост в первой будет равен расходу в другой.<br />
        <br />
        Чтоб проехать всю дорогу нужно будет начать с той из оставшихся вершин,<br />
        в которой идет прирост топлива.<br />
                <br />
4.  Как найти нужную вершину в исходной последовательности вершин?<br />
        <br />
    Для объединенной вершины запоминаем первую вершину из объединяемых исходных<br />
    вершин или если первая вершина последовательности уже объединенная, <br />
    то запоминаем исходную вершину сохраненную для первой вершины <br />
    последовательности.<br />
    <br />
    Сохраненная вершина для вершины (объединенной) с приростом, которая указана<br />
    в п. 3.3 будет одной из вершин, с которой нужно начинать путь.<br />
    Одной из, потому-что на шаге 3.2 может быть несколько подходящих пар вершин<br />
    и в зависимости от порядка объединения поменяется и найденная вершина.]]></description> 
		</item>
		<item>
			<guid isPermaLink="true">http://petruchek.info/problems/circular-route.html#comm.3070</guid> 
			<link>http://petruchek.info/problems/circular-route.html#comm.3070</link> 
			<pubDate>Tue, 04 Mar 2014 10:09:53 GMT</pubDate> 
			<title><![CDATA[Комментарий пользователя: аноним (дальнобойщик)]]></title>
			<description><![CDATA[не полное условие поэтому ответы разные у вас.Не сказано что известно про станции.Дополните условие!!!!!]]></description> 
		</item>
		<item>
			<guid isPermaLink="true">http://petruchek.info/problems/circular-route.html#comm.3003</guid> 
			<link>http://petruchek.info/problems/circular-route.html#comm.3003</link> 
			<pubDate>Sat, 04 Jan 2014 19:47:39 GMT</pubDate> 
			<title><![CDATA[Комментарий пользователя: аноним (Люся)]]></title>
			<description><![CDATA[А я думаю, что актуален такой вариант. Нам неизвестно где расположены станции, сколько их и сколько бензина в каждой из них. Ничего в условии не сказано и о том, что не может быть такого варианта, что все станции, кроме одной окажутся пустыми. Тогда можно предположить, что есть такая станция А, где сосредоточен весь бензин, которого хватит ровно на 1 круг по пустыне. На этой первой станции заправляемся всем бензином и делаем от нее полный круг]]></description> 
		</item>
		<item>
			<guid isPermaLink="true">http://petruchek.info/problems/circular-route.html#comm.2959</guid> 
			<link>http://petruchek.info/problems/circular-route.html#comm.2959</link> 
			<pubDate>Sat, 09 Nov 2013 13:56:29 GMT</pubDate> 
			<title><![CDATA[Комментарий пользователя: аноним (Дмитрий Сага)]]></title>
			<description><![CDATA[Это при условии двух станций. Само собой, если станций много, тогда следует выбрать заправку, где больше всего бензина, далее от неё разбить маршрут на 2 части, высчитать на какой части больше общее количество бензина и поехать в том направлении, заправляясь у каждой станции.]]></description> 
		</item>
		<item>
			<guid isPermaLink="true">http://petruchek.info/problems/circular-route.html#comm.2958</guid> 
			<link>http://petruchek.info/problems/circular-route.html#comm.2958</link> 
			<pubDate>Sat, 09 Nov 2013 13:42:44 GMT</pubDate> 
			<title><![CDATA[Комментарий пользователя: аноним (Дмитрий Сага)]]></title>
			<description><![CDATA[Легко. Это такая станция количества бензина на которой хватает, чтобы доехать до второй станции и заправить недостающий бензин. Тогда машина вернётся в исходную точку. <br />
Ну на практике я вам скажу вариантов гораздо больше)))]]></description> 
		</item>
	</channel>
</rss>
