0 / 0 / 0
Регистрация: 11.07.2012
Сообщений: 8
|
|
1 | |
Интересная Олимпиадная Задача11.07.2012, 20:34. Показов 2206. Ответов 17
Метки нет (Все метки)
Удалить из одномерного массива наименьшее количество элементов так, что бы оставшиеся элементы возрастали
0
|
11.07.2012, 20:34 | |
Ответы с готовыми решениями:
17
Олимпиадная задача №4 Олимпиадная задача Олимпиадная задача Олимпиадная задача |
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
|
||||||
11.07.2012, 23:48 | 2 | |||||
2
|
0 / 0 / 0
Регистрация: 11.07.2012
Сообщений: 8
|
|
12.07.2012, 23:21 [ТС] | 3 |
Помоему, так можно некоторую комбинацию пропустить))
Я Думаю сделать бинарным методом, так точно ничего не проспутишь Но проблема в том, что если будет много элементов, то очень большое количество комбинаций выходит ! Добавлено через 7 минут Ии я не совсем понел как работает ваш код ! Если можно, распишите ,пожалуйсто , ваш Алгоритм !
0
|
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
|
|
13.07.2012, 00:45 | 4 |
Интересно, какую это комбинацию я пропустил, если у меня полный перебор?
А алгоритм перед вами. Раз вы так уверенно заявляете, что в моём алгоритме есть дыра, значит, можете разобраться в нём. Ничего нового. Перебираем все варианты возрастающих последовательностей данного массива, выбираем самую длинную, откидываем лишние элементы, не входящие в данную последовательность.
0
|
0 / 0 / 0
Регистрация: 11.07.2012
Сообщений: 8
|
|
13.07.2012, 12:42 [ТС] | 5 |
Просто я не доконца его понел. Незнаю, такая мысль возникла )) я потом еще раз пересмотрел, большую часть понел, но все равно все еще не ясно как именно.
Если незатруднит, распишите алгоритм подробнее)
0
|
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
|
|
13.07.2012, 13:16 | 6 |
Не нанимался я неучей учить, разбирайтесь сами, раз взялись за олимпиадные задачи, иначе толка не будет. Мне никто ничего не объяснял, может, потому и могу кое-что.
Всё в программе. Там ничего сложного.
0
|
0 / 0 / 0
Регистрация: 11.07.2012
Сообщений: 8
|
|
13.07.2012, 20:48 [ТС] | 7 |
Да все все успокойтесь))) я все понел)) я тоже так делал, только я в конце не выводил нужные, а удалял просто их, с чем возинкали проблемы (из двух чисел нужно было удалить нужное)
Спасибо большое!!)) И да, я не неуч) Добавлено через 1 час 6 минут Не работает ваша прогамма. В Комбинации 7,1,4,5,9,6,7,8,3,2,10 она удаляет сначало 6, потом 7, потом 8, потом 3, потом 2. А должна была удалить только девятку,тройку и двойку) Я не зря задал вопрос, будь это программа такой легкой, я бы не создавал эту тему. Я сделал бинарным перебором, но она довольно долго работает для больших чисел, врятли это рационально !
0
|
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
|
|
13.07.2012, 23:08 | 8 |
Да, вы правы. есть тонкости, которые я не учёл, но они устранимы.
0
|
0 / 0 / 0
Регистрация: 11.07.2012
Сообщений: 8
|
|
14.07.2012, 17:01 [ТС] | 9 |
Я пытался их устронять, выходило, что в одном случае программа работает нормально, а вдругом опять удаляет то, что не нужно (
0
|
15.07.2012, 11:19 | 10 |
А 7 что не подпадает под "оставшиеся элементы"?Добавлено через 1 час 3 минуты Enies Lobby, на каких тестовых данных тестируется эталон? Т.е. такие данные должны быть. Это очень важно. Кроме каких-то очевидных ситуаций, которые программа обязана считать, должны быть "особые" данные выявляющие несоответствие алгоритма условию, выложите их если они у вас есть.
0
|
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
|
|
15.07.2012, 11:58 | 11 |
>Quiet Snow< , он прав. Моя программа не учитывает такие последовательности, как, к примеру:
1 2 10 3 4 она найдёт 1 2 10, а надо 1 2 3 4
0
|
15.07.2012, 12:27 | 12 |
может возникнуть ситуация, что она так же не учтёт определённые вещи. Поэтому ты и не мог проверить работу своей программы. А то иметь полный бинарный перебор и каждый раз проверять по 20-30 раз разными комбинациями + не быть уверенным, что программа работает тоже как-то не очень...
0
|
0 / 0 / 0
Регистрация: 11.07.2012
Сообщений: 8
|
|
15.07.2012, 23:16 [ТС] | 14 |
Эмм Все числа натуральные, количество всех чисел не превышает 10 000.
Комбинация 7,1,4,5,9,6,7,8,3,2,10 наиболее показательна, здесь основная загвоздка, подобных пока не нашел. Я вот как сделал: если n - это количество элементов, то открываю цикл от 1 до 2^n (Сами понимаете, 2 в десятой степени совсем не маленькое число) Далее перевожу его в двоичную систему, добавляю нули в начале ( дополняю размер комбинации до n). Проверяю, если 0 - то элемент в комбинации не учитывается, если 1 - то учитывается. Запоминая комбинацию, выбираю наиболее рациональную. но она оооооооооооооооочень долго работает
0
|
16.07.2012, 13:16 | 15 | |||||||||||||||
по бинарному алгоритму (перебирая все возможные комбинации):
Альтернативный алгоритм: проверяем массив на возрастание, затем поочередно исключаем из массива вначале 1 элемент (n комбинаций), затем 2 элемента (n*(n-1)/2 комбинаций), 3 элемента - n*(n-1)*(n-2)/6 комбинаций, 4 элемента и т.д. каждый раз проверяя массив на возрастание, первая попавшаяся комбинация даст искомое решение, при этом не нужно будет проверять все n^2 комбинаций, это случится только если массив отсортирован по убыванию для предложенных 11 чисел, необходимо будет проверить максимум 1+11+55+165+330=562 комбинаций Добавлено через 9 часов 20 минут Постараюсь реализовать вышеупомянутый алгоритм на VBA (в нем легче сделать отладку и больше возможностей), если получится, то можно будет и на QBasic перевести Добавлено через 2 часа 24 минуты вариант на VBA, на QBasic пока нет времени перевести:
собственно на QBasic:
2
|
1255 / 705 / 359
Регистрация: 20.02.2010
Сообщений: 1,035
|
||||||
16.07.2012, 19:48 | 16 | |||||
разбор данной задачи есть в книге: Ф. В. Меньшиков. "Олимпиадные задачи по программированию"
2
|
0 / 0 / 0
Регистрация: 11.07.2012
Сообщений: 8
|
|
18.07.2012, 18:37 [ТС] | 18 |
Вуй вот круто то а) я тож скачал книгу, осталось только разобраться, пока не совсем получается)
Добавлено через 6 часов 34 минуты Все я разобрался ! Всем спасибо ! Жаль что сам не догодался (
0
|
18.07.2012, 18:37 | |
18.07.2012, 18:37 | |
Помогаю со студенческими работами здесь
18
Задача на дп (олимпиадная) Олимпиадная задача Олимпиадная задача Олимпиадная задача Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |