Модераторы: Alx, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C] курсовая. Олимпиадная задача. Ступор. ступор в решении задачи, нужна помощь. 
:(
    Опции темы
pevu
  Дата 16.12.2006, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 16.12.2006

Репутация: нет
Всего: нет



Когда получал задачу, мне сказали, что она легкая. Не тут то было, видимо ее с чем-то перепутали, потому что все говорят что она очень сложная. В результате я долго парился с этой задачей, одногруппники помочь не могут, до сдачи осталось мало времени. smile 
Заранее спасибо.

Вот условие:

Служебный автобус совершает один рейс по установленному маршруту и в случае наличия свободных мест подбирает рабочих, которые ожидают на остановках, и отвозит их на завод. Автобус также может ждать на остановке рабочих, которые еще не пришли. Известно время прихода каждого рабочего на свою остановку и время проезда автобуса от каждой остановки до следующей. Автобус приходит на первую остановку в нулевой момент времени. Продолжительность посадки рабочих в автобус считается нулевой.
Задание: Написать программу BUS, которая определит минимальное время, за которое автобус привезет максимально возможное количество рабочих.
Входные данные: Входной текстовый файл BUS.DAT в первой строке содержит количество остановок N и количество мест в автобусе M. Каждая i-я строчка из последующих N строчек содержит целое число - время движения от остановки _ к остановке i+1 (N+1-я остановка - завод), количество рабочих K, которые придут на i-ю остановку, и время прихода каждого рабочего на эту остановку в порядке прихода (1 <= M <= 2000, 1 <= N,K <= 200000).
Пример входных данных.
3 5
1 2 0 1
1 1 2
1 4 0 2 3 4
Выходные данные: Единственная строка выходного текстового файла BUS.SOL должен содержать минимальное время, необходимое для перевозки максимального количества рабочих.
Пример выходных данных.
4
PM MAIL   Вверх
Sartorius
Дата 16.12.2006, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: нет
Всего: 37



 Поскольку все в целых числах и маршрут один , остается тупо перебирать время ожидания на каждой остановке (ну если в лоб решать smile ). Одно не понятно - критерий удачного маршрута. Что значит за минимальное время максимальное кол-во рабочих. Вот, например, можно минимизировать {время}/{количество рабочих} или {время} - {количество рабочих}. ИМХО необходимо формализовать оценку маршрута. 
ЗЫ 
Другое дело если под максимальным кол-вом рабочих имеется ввиду min{число мест в автобусе, общее кол-во ожидающих}. ..

ЗЫ ЗЫ 
 
 Да похоже это и нада..(сначала пример не прочитал). Ну, соответственно, оставляй тока не маршруты, где в конце число рабочих = min{число мест в автобусе, общее кол-во ожидающих}.


Это сообщение отредактировал(а) Sartorius - 16.12.2006, 16:31
PM MAIL ICQ   Вверх
pevu
Дата 16.12.2006, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 16.12.2006

Репутация: нет
Всего: нет



максимальное количество рабочих - это:
*Вместимость автобуса, если вместимость автобуса <= общего числа рабочих
*Общее число рабочих, если вместимость автобуса > общего числа рабочих

Sartorius, спасибо, но нам сказали, что полным перебором считать нежелательно, надо искать алгоритм..((( Хотя мне кажется, придется все-таки перебирать... Только у меня проблема со считыванием данных из файла, нам это объяснили очень-очень плохо...
PM MAIL   Вверх
Sartorius
Дата 16.12.2006, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: нет
Всего: 37



 Ну тада сведи к поиску минимального пути на графе (оценочная функция - время). При построении удаляй все пути глубины != максимальному числу рабочик.
PM MAIL ICQ   Вверх
pevu
Дата 16.12.2006, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 16.12.2006

Репутация: нет
Всего: нет



спасибо, сейчас обдумаю...
PM MAIL   Вверх
pevu
Дата 17.12.2006, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 16.12.2006

Репутация: нет
Всего: нет



Так, с вводом данных из файла пока можно подождать... интересует пока ПОДРОБНЫЙ алгоритм решения, не врубаюсь я никак..((( Точнее, постепенно врубаюсь, осталось совсем немного для полного понимания. Делаю по алгоритму, описанному здесь: http://g6prog.narod.ru/g6_1058.html.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Интересные и занимательные задачи по программированию | Следующая тема »


 




[ Время генерации скрипта: 0.1036 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.