|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.05.2016, 10:12 | #1 |
Новичок
Джуниор
Регистрация: 01.02.2012
Сообщений: 2
|
ошибка в алгоритме с++
Здравствуйте, помогите, пожалуйста. Есть задача:
Есть N станков и 2 работы. Каждая работа состоит из Si этапов. Этап характеризуется парой (n, t) чисел, где n — номер станка, а t — продолжительность этапа. Для каждой работы порядок этапов строго задан. Любой этап можно приостановить в любой момент и позже продолжить с того же момента. В каждый момент времени любая работа может выполняться только на одном станке и любой станок может выполнять только одну работу. Необходимо составить такое расписание, чтобы все работы были выполнены за минимальное время. Формат входного файла В первой строке содержится единственное число N. В следующих двух строках на первом месте записано число Si, а за ним — Si пар (n, t) через пробел. И мое решение: Код:
4 3 1 1 3 3 2 1 4 1 1 2 3 4 1 3 1 выдает ответ 5, хотя мин время работы 6 не могу найти, где ошибка в алгоритме, помогите пожалуйста |
29.05.2016, 19:55 | #2 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Посмотрите здесь. Смысл изменений: векторы v1, v2 преобразуются в
в вектора Pabota1, Pabota2 Pabota1={1,3,3,3,2} Pabota2={1,2,2,2,4,3}, где индекс вектора - это каждый час, а его значение - задействованный мотор. Т.к. время идет синхронно для 1-й и 2-й работы, то сравниваем Pabota1[i] и Pabota1[j] поэлементно. Если Работы 1 и 2 будет конкурировать друг с другом за мотор, то выполняется та работа, у которой макс. кол-во элементов (в нашем случае Pabota2). В следующем часе снова сравнение - если для задание нужны разные моторы - то задействуем их обоих... Матрица Slegenie показывает как во времени работали моторы (её можно удалить). Нет времени особо тестировать программу, но если найдешь ошибку - пиши. У меня Visual Studio 2013 - иногда при копировании текста программы выводит ошибку - "не обнаружен конец файла". Глюк среды - лечится постепенной компиляции: сначало дирректив, потом main(), .... Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Некорректная работа, ошибка в алгоритме | orandzheviyman | Помощь студентам | 5 | 07.11.2014 23:42 |
поиск фибоначи ошибка в алгоритме | aksdaqg | Помощь студентам | 1 | 04.04.2014 11:40 |
Ошибка в алгоритме | parkito | Общие вопросы C/C++ | 1 | 07.12.2011 04:25 |
Ошибка в алгоритме поиска | murzilka6002 | Общие вопросы C/C++ | 15 | 24.11.2011 04:57 |
Ошибка в алгоритме слияние массивов | ATAMAN200 | Общие вопросы C/C++ | 3 | 25.10.2010 20:37 |