|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.11.2012, 00:26 | #11 | |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
Моя прога кому-то что-то задолжала?.. и не отдает?? во, зараза!.. ))
Вот протокол ее работы при некотором k>n Код:
New man, обрати внимание на четвертую с конца строчку в моем коде )). Ромаха, спасибо за поддержку ). Согласен, критика должна быть более предметной (или хотя бы проверенной). Цитата:
Мой код - это просто полный перебор. Он не требует никаких "соображений в защиту", все, что ему надо - быть написанным без ошибок (на это я в данном случае надеюсь, но не гарантирую). Если же пытаться использовать какой-то общий _алгоритм_, то прежде всего, следует привести некоторые соображения математического характера, на которых он будет основан. Типа - вот такое преобразование упрощает ситуацию, не меняя результата. После беглого ознакомления с условием я такого алгоритма придумать не смог, потому использовал рекурсию (как способ полного перебора). Возможно, тут следует делать слияние соседних грядок (как ты делаешь, Ромаха, если я правильно тебя понял). Но, как я сказал выше, это требует строгого подтверждения. Ромаха, не отвлекайся давай, делай дело )
Предпочитаю на "ты".
|
|
20.11.2012, 07:24 | #12 | ||
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Утро доброе.
Найдем (ну хоть попытаемся найти) инвариант. На его роль подходит сумма времязатраности по выполнения дачного долга. Тоесть сумма всех значений массива t. Мы можешь делать с массивом t всё что захотим, лишь бы сумма всех его элементов не стала бы меньшей, или большей..Она должна сохранить совё изначальное значение. Т.к. мы мы имеем право назначать только соседние грядки, то после нахождения минимума мы просто загоним значение t[min] в t[min+1] (разумеется сложив 2 значения t[min] и t[min+1]) Теперь сумма элементов массива больше ровно на t[min]. И что бы злобный инвариант не выкинул нас из цикла мы должны "выкинуть" t[min]. Как это сделать? Вернемся к вопросам реализации, ну наверное или запихнуть в другой массив, но тогда как быть в цикле? => снова перезапись элементов в массив t, или побайтовый сдвиг(или побитовый сдвиг или пошаговый, не помню). Инвариант, остается инвариантом. Кол-во элементов массива уменьшается на 1. Но времязатратность грядкокопания остается не изменной. (Ведь тоже рекурсия ) Цитата:
Цитата:
Последний раз редактировалось Poma][a; 20.11.2012 в 07:27. |
||
21.11.2012, 11:58 | #13 |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
Ром, я не совсем понимаю твою тягу к инвариантам. Помимо сохранения, в них еще должен быть какой-то смысл..
Короче, вот тебе пример: 5 4 2 3 9 1 9 Минимум - 1. Эту единицу ты, видимо, объединишь с одной из девяток. И получишь ответ 10, что явно неверно.. Так? или я во что-то не врубаюсь?
Предпочитаю на "ты".
|
21.11.2012, 22:11 | #14 | |||||
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Да-да, я напортачил. Огроменное спасибо, что нашел (фи, как не культурно) контр-пример для ей идеи. |
|||||
23.11.2012, 15:37 | #15 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Есть подозрение, что это частный случай задачи коммивояжера. И алгоритм точного решения - только перебор вариантов. Обосновать это предположение в приемлемое время слабо, скорее всего вообще слабо
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 23.11.2012 в 15:41. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
олимпиадная задача | quade1992 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 17.05.2012 18:57 |
школьная задача(пример) | vanushka | Паскаль, Turbo Pascal, PascalABC.NET | 9 | 14.11.2011 18:07 |
Олимпиадная задача | Sanek_ntsk | Помощь студентам | 4 | 09.11.2011 23:03 |
Олимпиадная задача. | masashama | Общие вопросы C/C++ | 19 | 27.10.2011 14:52 |
Школьная задача по информатике(алгоритм) | Soko123 | Помощь студентам | 6 | 22.12.2010 19:13 |