![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
Lacoste1024 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 20.3.2011 Репутация: нет Всего: 1 |
Доброе время суток. Возник вопрос при решении задачи. Суть в том, чтобы из набора чисел отобрать минимальную пару чётных чисел, а если такой нет, то просто минимальную пару. У меня за эту задачу 1 из 4х баллов. Своё решение выкладывать пока не буду т.к. хочу узнать ваши методы решения этой задчи.
Формат входных данных: в первой строке - N - количество чисел, далее в каждой строке идёт N числел от 0 до 30000. Выходные данные: минимальная сумма указанная в условии P.S. Задачу решить нужно наиболее оптимальным способом как по памяти, так и по времени Это сообщение отредактировал(а) Lacoste1024 - 6.6.2012, 21:52 |
|||
|
||||
iff |
|
|||
![]() Администратор ![]() ![]() Профиль Группа: Участник Сообщений: 949 Регистрация: 23.3.2007 Репутация: 3 Всего: 16 |
Или минимальное произведение? Это сообщение отредактировал(а) iff - 6.6.2012, 21:37 -------------------- DOS... Синей пеленой экран заполнил чистый DOS Мышь... Стала вдруг квадратной, потеряла форму мышь... Я разбил окно, девяностопятое мастдайное окно, И поставил DOS, и тогда увидел: Это счастье, — вот оно. |
|||
|
||||
Lacoste1024 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 20.3.2011 Репутация: нет Всего: 1 |
iff, Минимальную пару, т.е. сумму
P.S. Задачу решить нужно наиболее оптимальным способом как по памяти, так и по времени Это сообщение отредактировал(а) Lacoste1024 - 6.6.2012, 21:52 |
|||
|
||||
Qu1nt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 13.1.2007 Репутация: нет Всего: 50 |
Особо не тестировал, но суть такая:
Это сообщение отредактировал(а) Qu1nt - 7.6.2012, 00:14 |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: нет Всего: 20 |
А ЕГЭ по информатике разве уже был?
Сегодня только ночь 7-го июня. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
Lacoste1024 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 20.3.2011 Репутация: нет Всего: 1 |
28 мая был. Я решил задачу таким же алгоритмом как Qu1nt. Какие будут ещё версии решения?
|
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: нет Всего: 128 |
Для домашних заданий, курсовых, существует "Центр Помощи".
Тема перенесена! -------------------- There are always someone smarter than you... |
|||
|
||||
Qu1nt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 13.1.2007 Репутация: нет Всего: 50 |
Lacoste1024, когда в таких задачах просят использовать наименьшее количество памяти — по сути это отказ от массива. У меня его нет. Единственное, что можно сделать — избавиться от переменной I. А это уже смешно.
Когда подобные задачи просят решить за минимальное время, это значит, что сложность алгоритма должна быть O(n). У меня так. Уменьшить количество сравнений? Какая-то экономия на спичках. Когда за решение задачи ставят 1/4 — это значит, что задача решена не полностью, ну или человек, который её оценивал не до конца с ним разобрался ![]() |
|||
|
||||
Lacoste1024 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 20.3.2011 Репутация: нет Всего: 1 |
Qu1nt, спасибо большое!
Это сообщение отредактировал(а) Lacoste1024 - 7.6.2012, 19:44 |
|||
|
||||
Lacoste1024 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 20.3.2011 Репутация: нет Всего: 1 |
Qu1nt, я задачу решил таким же алгоритмом. Сначала отбор 4х чисел, а затем выбор.
Получается, у меня правильное решение, однако стоит 1 балл из 4х. Может ли кто-нибудь предложить ещё свои варианты? |
|||
|
||||
Amphiluke |
|
|||
![]() ☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: нет Всего: 112 |
Еще возможный вариант. Использует немного меньше переменных (в том числе за счет избавления от цикла со счетчиком, о чем говорил Qu1nt). По производительности вряд ли быстрее, но логика, пожалуй, чуть запутаннее
![]()
|
|||
|
||||
Qu1nt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 13.1.2007 Репутация: нет Всего: 50 |
Amphiluke, проверять чётность числа через деление — моветон. Только Odd, только хардкор!
|
|||
|
||||
Amphiluke |
|
|||
![]() ☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: нет Всего: 112 |
Qu1nt, экономия на переходах.
![]() недооценил компилятор. Это сообщение отредактировал(а) Amphiluke - 8.6.2012, 12:32 |
|||
|
||||
Amphiluke |
|
||||||
![]() ☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: нет Всего: 112 |
Qu1nt, кстати, что в вашем примере, что в моем есть несоответствие условию задачи (если я правильно понял)
К примеру, на таком наборе введенных данных
наши примеры выдадут ответ 1 + 3 = 4 А должно быть 0 + 1 = 1. ![]() Следовательно, надо перед выдачей ответа ставить дополнительную проверку на случай, когда есть только одно четное число в наборе, и оно меньше одного из найденных (или обоих) наименьших нечетных. Приложу свой исправленный вариант:
Это сообщение отредактировал(а) Amphiluke - 8.6.2012, 13:06 |
||||||
|
|||||||
Qu1nt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 602 Регистрация: 13.1.2007 Репутация: нет Всего: 50 |
А я искал пару нечетных
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |