|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
31.10.2012, 12:00 | #11 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
Можно попробовать "распараллелить" проверку состояния лампочки: вместо массива состояний использовать одну весьма большую переменную "Х" (в худшем случае 10^9 бит), в которой каждый бит будет обозначать состояние каждой конкретной лампочки. Для каждого переключения сгенерировать маску (аналогично: есть инверсия - бит 1, нет инверсии - бит 0), с которой провести побитовое "xor" того самого "Х") После всех операций количество единиц в "Х" будет совпадать с кол-вом горящих лампочек
Благодарить в репутацию. Проклинать — туда же
Последний раз редактировалось Luuzuk; 31.10.2012 в 12:04. |
31.10.2012, 12:09 | #12 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Luuzuk, не хватит памяти.
Простейшее решение, не проходящее 6 тест по времени: Код:
Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 31.10.2012 в 12:14. |
31.10.2012, 12:14 | #13 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
|
|
31.10.2012, 12:17 | #14 |
Ученик в c++
Форумчанин
Регистрация: 28.02.2011
Сообщений: 162
|
Вот попробовал кое-что...
Код:
Код:
Ну уберем один нолик из Код:
Последний раз редактировалось Ghost3; 31.10.2012 в 12:26. |
31.10.2012, 12:53 | #15 |
Ученик в c++
Форумчанин
Регистрация: 28.02.2011
Сообщений: 162
|
Хах, кое-что получилось, но не прошла компиляцию:
Строчки 11 и 17, где "for" Код:
Код:
Последний раз редактировалось Ghost3; 31.10.2012 в 12:56. |
31.10.2012, 14:13 | #16 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
array[1..100000000] of int64;
100000000 * 64 бита = 100000000 * 8 байт = 762 мегабайта - удачи
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
31.10.2012, 15:57 | #17 |
Ученик в c++
Форумчанин
Регистрация: 28.02.2011
Сообщений: 162
|
Ахахах =)
Что-то я тупить начал =) Реально непростая задача. Надо опыта набраться побольше. |
01.11.2012, 12:07 | #18 |
Ученик в c++
Форумчанин
Регистрация: 28.02.2011
Сообщений: 162
|
Думаю, стоит подумать над таким решением (но оно в Си), и попытаться переделать его под паскаль если это возможно.
Ps: сам по немногу изучаю C++ по учебнику Шилдта, он удобнее чем паскаль, и "плюшек" у него больше. Код:
|
01.11.2012, 14:10 | #19 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Да переписать-то его - не проблема (при беглом просмотре не заметил ничего сложного), но, имхо, оно обладает той же сложностью O(K*N).
Приду домой - перепишу на паскаль. (переписанный код будет в этом посте, если никто раньше не перепишет) Update Это решение потребует 4*SIZE байт для массива, что не укладывается в ограничение по памяти. Так что, похоже, никакого смысла переписывать нет. Код:
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 01.11.2012 в 17:17. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Олимпиадная задача "Золото племени АББА" на Pascal (№7 с acmp.ru) | Ghost3 | Помощь студентам | 19 | 17.01.2013 21:04 |
Pascal ABC строки - программа, которая каждую встреченную букву "б" заменяет сочетанием "ку" (использовать модули) | Raigo | Помощь студентам | 6 | 17.05.2012 15:35 |
написать программу по управлению клавиатурой: при нажатии "+" загораются лампочки... | NickolayNest | Помощь студентам | 0 | 25.10.2011 20:07 |
Object Pascal "процедуры и функции" еще задача | наташка-ромашка | Помощь студентам | 3 | 10.02.2011 21:25 |
Задача "Счастливый билет" (Turbo Pascal) - трубуется помощь | BzDoN | Помощь студентам | 16 | 20.12.2009 19:29 |