кроссворды, задачки, головоломки

Сборник задач разного уровня сложности по математике, информатике, физике, химии, программированию, экономике etc. Логические задачи, SQL задачи, решение задач. Задачи с ответами, а также нерешённые задачи.

Petruchek.Info

Круговой маршрут

Добавлено: 17.09.13 в 21:00
Метки: математика

Вдоль кругового маршрута в пустыне расположены заправочные станции. Бензина, который на них всех в сумме есть, как раз ровно хватает, чтобы объехать весь маршрут и вернуться в исходную точку. Бак у машины достаточно просторный, чтобы вместить бензин на весь маршрут, если нужно. Доказать, что есть такая станция, что машина с пустым баком может начать с нее и проехать весь маршрут.

У этой задачи пока что нет ответа/решения. Вы можете прислать свой вариант в комментарии.


Комментарии
Google says:
Дмитрий Сага (09.11.13):
Легко. Это такая станция количества бензина на которой хватает, чтобы доехать до второй станции и заправить недостающий бензин. Тогда машина вернётся в исходную точку.
Ну на практике я вам скажу вариантов гораздо больше)))
Дмитрий Сага (09.11.13):
Это при условии двух станций. Само собой, если станций много, тогда следует выбрать заправку, где больше всего бензина, далее от неё разбить маршрут на 2 части, высчитать на какой части больше общее количество бензина и поехать в том направлении, заправляясь у каждой станции.
Люся (04.01.14):
А я думаю, что актуален такой вариант. Нам неизвестно где расположены станции, сколько их и сколько бензина в каждой из них. Ничего в условии не сказано и о том, что не может быть такого варианта, что все станции, кроме одной окажутся пустыми. Тогда можно предположить, что есть такая станция А, где сосредоточен весь бензин, которого хватит ровно на 1 круг по пустыне. На этой первой станции заправляемся всем бензином и делаем от нее полный круг
дальнобойщик (04.03.14):
не полное условие поэтому ответы разные у вас.Не сказано что известно про станции.Дополните условие!!!!!
Иван (10.04.15):
1. Подготовка

Пусть есть всего n станций заправки, назовем их вершинами.

На каждой вершине i (in [1 .. n]) машина заправляется на a[i] и чтоб доехать
до следующей вершины тратит b[i] бензина.

Из условия:
a[1] + .. + a[n] = b[1] + .. + b[n]

или
(a[1] + .. + a[n]) - (b[1] + .. + b[n]) = 0 (*)

Обозначим
c[i] = a[i] - b[i],

т.е. на сколько изменится количество топлива в баке, когда машина
заправится в вершине i и проедет до следующей вершины.

Тогда (*) преобразуется в

с[1] + .. + c[n] = 0 (**)

Если c[i] >= 0, то топлива прибавилось или не изменилось (далее -- прирост)
Если c[i] < 0, то топлива уменьшилось (далее -- расход)



2. Несколько рассуждений

Нельзя начать с вершины, где c[i] < 0 или последовательности вершин,
где c[i] = 0, за которыми следует вершина, где c[i] < 0. (изначально
бак пустой).

Если несколько вершин подряд идут с с[i] >= 0, то начинать нужно с
самой первой вершины. Если она пропустит несколько вершин в начале
такой последовательности то
- Не сможет закончить маршут, если среди пропущенных были вершины c[i]>0

По условию машина заканчивает маршрут с пустым баком, соответственно
если у нее будет прирост в конце маршрута (вершины с[i]>0, которые
она пропустила), то когда она подъедет к первой вершине
в последовательности, у нее должно быть отрицательное количество
бензина;

- ничего не выиграет, если пропустит только вершины, где c[i] = 0.

3. Как найти нужную вершину:

3.1 Последовательности вершин в которых идет прирост (c>=0) можно считать
одной вершиной, в которой прирост равен сумме приростов во всех этих
вершинах.

Аналогично последовательности вершин для которых идет расход (c<0)
можно считать одной вершиной с расходом равным сумме расходов
по всем вершинам.

После объединения каждой описанной последовательности в одну вершину
маршрут представляется попеременно вершинами с приростом и расходом.
Количество вершин в которых идет прирост равно количеству вершин
в которых идет расход.


3.2 Что нужно делать:
- объединяем соседние вершины (с приростом и расходом) в которых
прирост больше либо равен расходу.
- после этого объединения образуется последовательная пара
вершин в которых происходит прирост. Объединяем их в одну
вершину с приростом, согласно п 3.1.

Доказательство того, что существуют соседние вершины, в которых
прирост больше либо равен расходу (От противного).

Пусть у нас есть 2*n вершин (после всех объединений, как в п 3.1)
и для каждой пары соседних вершин i (i in 1..n), расход превышает
прирост, т.е.

c[2i-1] + с[2i] < 0 (1)

Сложив все неравенства (1) получаем
c[1] + c[2] + .. + c[2n] < 0 (2)

Неравенство (2) противоречит условию задачи (**), в котором сказано,
что машина потратит столько-же бензина на сколько она заправится.
Из этого следует, хотя-бы для одной последовательной пары вершин
прирост будет не ниже чем расход.

3.3 Выполняем п. 3.2 до тех пор, пока не останется 2 вершины -
одна с приростом, другая с расходом. Причем из условия следует,
что прирост в первой будет равен расходу в другой.

Чтоб проехать всю дорогу нужно будет начать с той из оставшихся вершин,
в которой идет прирост топлива.

4. Как найти нужную вершину в исходной последовательности вершин?

Для объединенной вершины запоминаем первую вершину из объединяемых исходных
вершин или если первая вершина последовательности уже объединенная,
то запоминаем исходную вершину сохраненную для первой вершины
последовательности.

Сохраненная вершина для вершины (объединенной) с приростом, которая указана
в п. 3.3 будет одной из вершин, с которой нужно начинать путь.
Одной из, потому-что на шаге 3.2 может быть несколько подходящих пар вершин
и в зависимости от порядка объединения поменяется и найденная вершина.
Иван (10.04.15):
Уточнение по поводу п. 3.2:
Объединять нужно пары вершин у которых в первой прирост, а во второй расход. (Чтоб внутри объединенной вершины количество топлива не падало ниже, чем оно было вначале)

И поэтому еще в доказательстве существования нечетные вершины с пиростом, а четные с расходом.
Аноним (10.04.15):
П 3.2 и 3.3 можно упростить.

3.2
После п. 3.1. весь маршрут - это последовательность вершин, где
последовательно идут вершины с приростом и расходом.

На этом шаге объединяем *ВСЕ* пары вершин (пара начинается с вершины
с приростом - если после объединенная вершина будет с приростом, то
можно гарантировать, что во внутренних вершинах количество бензина
не упадет ниже чем в начале обьединенной вершины).

Таким образом уменьшаем количество вершин вдвое.

Доказательство того, после обьединения останутся вершины с приростом
прежнее.

3.3.
Выполняем п 3.1 и 3.2 до тех пор пока не останется две вершины.
Одна с приростом, другая с расходом. Начинаем двигатся с вершины
с приростом.
Комментарий от новенького:
Новенький является
Новенький не робот
Знаки на картинке: латинские буквы, арабские цифры


Есть на сайте: Онлайн кроссворды Задачи Онлайн игры Блог
Все работы, опубликованные на сайте — авторские, если не указано иное. Перепечатка возможна только с письменного разрешения владельцев ресурса, с обязательной ссылкой на сайт petruchek.info. Пишите нам: . Сайт должен работать в IE, FF, Opera, Safari.

Реклама:

Разработано в студии "Webous"о проектесайта карта

Реклама: