|
|
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
VadimPanovRT183.1, Извини, ничего не понял из твоего поста. Можешь сказать другими словами? ну другими словами: сишарп на тех задачах катастрофически не укладывается в тайм-лимит не на всех конечно, но в большинстве случаев ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2009, 17:37:56 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
Нормально. Задачка-то АЛГОРИТМИЧЕСКАЯ. Значит перевес будет не у Ассемблерщика а у математика. Грамотно написанная прога заполенния озёр водой будь-то C# или Java может порвать С++. Вы только дайте ей хорошие объёмы. Не 10х10 клеточек, 64000х64000. И рельеф надо сделать посложнее. С хорошим лабиринтом. P.S. Если-б не моя щас загруженность работой тоже посидел-бы парочку вечеров. Пооптимизировал. Всего! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2009, 17:48:30 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
maytonНормально. Задачка-то АЛГОРИТМИЧЕСКАЯ. Значит перевес будет не у Ассемблерщика а у математика. Грамотно написанная прога заполенния озёр водой будь-то C# или Java может порвать С++. Вы только дайте ей хорошие объёмы. Не 10х10 клеточек, 64000х64000. И рельеф надо сделать посложнее. С хорошим лабиринтом. P.S. Если-б не моя щас загруженность работой тоже посидел-бы парочку вечеров. Пооптимизировал. Всего! +1 тоже самое что оптимизировать и селекты :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2009, 17:58:54 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
SPOJ ваще очень френдли контестер в этом смысле. Там и сишарп потянет. А вот саратовский... они уже годы как уперлись рогом, настолько суровые тайм-лимиты. Я даже как-то написать хотел им: типа, завязывайте. Потом забил. Но все-таки они зря это. Там трудно чему-то научиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2009, 18:43:36 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
rmull VadimPanov И как они учитывают разную скорость для разных языков? Одно дело С++, другое - тот же C#... Никак. 7 секунд - общий time limit для всех языков. Но в случае с C# это не должно быть проблемой, потому что он практически не уступает по скорости C++. А я, вот, попробовал запостить их решение задачи TEST, который они приводят здесь , и для C# в их варианте получил время аж 0.17, и был где-то в середине списка из нескольких сотен решений. В то время как лучшие показали время 0.00... Даже слегка оптимизированное решение для шарпа дало 0.16, т.е. разница по скорости - огромная, и C# там отнюдь не в лидерах... Так - нечестно :-( ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 07:52:17 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
mayton, Что скажешь насчёт задачи TEST, см. мой пост выше? Асен пень, что на асме можно наворотить так, что и за год не посчитает. Но при прочих равных условиях C# там проигрывает. Надо мерить не время, а операции, а вот как это сделать - вопрос... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 07:55:20 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
rmull Какая у вашего решения сложность? У меня решение со сложностью O(n*m*log(n*m)) на C++ выполняется за 0.11 секунд. А как ты вывел эту формулу? Я бы тоже посчитал для своего алгоритма... Они бы хоть отображали, какое время в итоге, а то больше 7 и всё, а вдруг там 7.01 ? :-) или 100.01 ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 07:57:31 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
RT183.1VadimPanovRT183.1, Извини, ничего не понял из твоего поста. Можешь сказать другими словами? ну другими словами: сишарп на тех задачах катастрофически не укладывается в тайм-лимит не на всех конечно, но в большинстве случаев Во, щас всё понял! Чудеса!!! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 07:58:08 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
VadimPanovC# в их варианте получил время аж 0.17, и был где-то в середине списка из нескольких сотен решений. В то время как лучшие показали время 0.00... Даже слегка оптимизированное решение для шарпа дало 0.16, т.е. разница по скорости - огромная, и C# там отнюдь не в лидерах... Так - нечестно :-( ... Извини, Вадим но я не понимаю ЧТО мы измеряем? При таких коротких таймингах мы просто замеряли бут-страп Runtime-среды и сопряжение с библиотеками ввода-вывода (STDIN, STDOUT). Или я ошибаюсь в понимании контекста твоего вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 09:16:10 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
VadimPanovrmull Какая у вашего решения сложность? У меня решение со сложностью O(n*m*log(n*m)) на C++ выполняется за 0.11 секунд. А как ты вывел эту формулу? Я бы тоже посчитал для своего алгоритма... Они бы хоть отображали, какое время в итоге, а то больше 7 и всё, а вдруг там 7.01 ? :-) или 100.01 ... у них правило: снимать задачу после 2 тайм лимитов Т.е. если дано 7 сек то 14 секунд ее рубят Правда как это может помочь не знаю :0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 09:26:21 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
mayton, меня не пускают на ПТ, но сказать про Достоевского хочется. Больной на голову человек, он любил только себя, он хихикал убивая старушку. Толстой его именно так и оценивал: психически не здоровый. Вся его русская речь это намеренное искажение. Я ни одного его романа не осилил (впрочем, как и Толстого) Вот Чехов, это да..... Никто так не мог и не сможет писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 09:50:01 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
mayton Извини, Вадим но я не понимаю ЧТО мы измеряем? При таких коротких таймингах мы просто замеряли бут-страп Runtime-среды и сопряжение с библиотеками ввода-вывода (STDIN, STDOUT). Или я ошибаюсь в понимании контекста твоего вопроса. Я тоже не понимаю, что они там меряют. У меня программа отрабатывает задание с 10-ю одинаковыми матрицами размера 170 х 102 за 0.25 сек. Поскольку используется рекурсия, то бОльшего размера матрицы вызывают переполнение стека, а у них - не вызывают, значит, они юзают небольшие матрицы, но - много. Я так думаю. И сколько там заданий, чтобы загрузить алгоритм на 7 сек? Больше 280 штук у меня получается... Или как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 11:25:34 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
Я не о том. Я про этот исходник. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 11:42:55 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
VadimPanovmayton Извини, Вадим но я не понимаю ЧТО мы измеряем? При таких коротких таймингах мы просто замеряли бут-страп Runtime-среды и сопряжение с библиотеками ввода-вывода (STDIN, STDOUT). Или я ошибаюсь в понимании контекста твоего вопроса. Я тоже не понимаю, что они там меряют. У меня программа отрабатывает задание с 10-ю одинаковыми матрицами размера 170 х 102 за 0.25 сек. Поскольку используется рекурсия, то бОльшего размера матрицы вызывают переполнение стека, а у них - не вызывают, значит, они юзают небольшие матрицы, но - много. Я так думаю. И сколько там заданий, чтобы загрузить алгоритм на 7 сек? Больше 280 штук у меня получается... Или как? у тя просто очень мало опыта Будет опыт и все вопросы сами отпадут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 11:56:53 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
maytonЯ не о том. Я про этот исходник. Что-то я запутался. Ты сам-то про что говоришь? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 14:27:25 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
RT183.1 у тя просто очень мало опыта Будет опыт и все вопросы сами отпадут Как набрать опыт, если не понятно, как оно устроено? У меня-то на компе всё быстро работает, а там - нет... Кстати, вот в этой задаче, нужно считать количество квадратов ОДИНАКОВОГО размера или одновременно квадраты могут быть РАЗНОГО размера? Они привели данные в примере для 1, 2 и 8, было бы ещё для 3 - понятнее стало бы. Да и если такая разница по скорости в языках, то какой интерес? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 14:31:35 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
Кстати, вот насчёт времени , как они считают. Ясен пень, будет зависеть от языка. PS: у меня такое ощущение, что я сам с собой тут разговариваю... Ау, есть тут кто?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 14:41:31 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
авторКстати, вот в этой задаче, нужно считать количество квадратов ОДИНАКОВОГО размера или одновременно квадраты могут быть РАЗНОГО размера? Ну пример же там есть, длинна разная может быть, но я так понял, что квадраты могут иметь как-бы общие клетки тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 15:01:22 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
qaqaqa88авторКстати, вот в этой задаче, нужно считать количество квадратов ОДИНАКОВОГО размера или одновременно квадраты могут быть РАЗНОГО размера? Ну пример же там есть, длинна разная может быть, но я так понял, что квадраты могут иметь как-бы общие клетки тоже. Сколько квадратов ты насчитал при длине стороны - 3? Я насчитал 34: "сам весь" - 1 "все мелкие внутри" - 9 "Один крупный в углу, остальные пять вокруг двух его сторон" (4 комбинации, 6*4) - 24 итого - 34 Или я не прав? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 15:21:22 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
VadimPanov, я про то, что нельзя использовать сравнение С# и Java приложений с запуском executable. И так ясно, что раскрутка старта процесса в Unix происходит мгновенно, в Windows - чуть медленнее, а платформы Java и С# поднимаются и JIT-компилятся несколько секунд. Если мы хотим сравнивать ЧИСТОЕ время работы алгоритма, то надо внутрь приложения ставить чекпоинты. В противном случае цифры получаются несоответствующие действительности, особенно на коротких по времени расчётах (не более минуты например). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 16:07:32 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
VadimPanovRT183.1 у тя просто очень мало опыта Будет опыт и все вопросы сами отпадут Как набрать опыт, если не понятно, как оно устроено? У меня-то на компе всё быстро работает, а там - нет... Кстати, вот в этой задаче, нужно считать количество квадратов ОДИНАКОВОГО размера или одновременно квадраты могут быть РАЗНОГО размера? Они привели данные в примере для 1, 2 и 8, было бы ещё для 3 - понятнее стало бы. Да и если такая разница по скорости в языках, то какой интерес? конечно разного, просто все они должны быть квадратами Но эта задача из разряда где ну скорость ваще значения не имеет Есть тип задач где важна именно скорость (т.е. в этом их соль) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 16:26:22 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 0,01 sec / 2,6Mb Сейчас буду думать как улучшать...Я так понял надо делать свитч на 100 элементов...)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2009, 18:52:08 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
VadimPanovrmull Какая у вашего решения сложность? У меня решение со сложностью O(n*m*log(n*m)) на C++ выполняется за 0.11 секунд. А как ты вывел эту формулу? Я бы тоже посчитал для своего алгоритма... Алгоритмическая сложность - базовое понятие в теории алгоритмов. О ней написано в любой книге по алгоритмам. В простейшем случае надо найти самый большой набор вложенных циклов, и перемножить максимальное количество итераций каждого из циклов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2009, 12:30:20 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
qaqaqa88Я так понял надо делать свитч на 100 элементов...)) Не вздумай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2009, 13:48:02 |
|
||
|
Каким алгоритмом можно заполнить все озёра рельефа водой?
|
|||
|---|---|---|---|
|
#18+
Вот неплохая карта для тестов. Когда наскучит развлекаться со сливом воды за границы этого виртуального мира, условия можно изменить. Я-бы ввёл искуственный "забор" шириной в 1 пиксел по периметру, и с определённой высотой. Её можно взять как нормированную 0.5 от минимального и макс. значения высот, либо как половину объёма всех высот (здесь надо взять численный интегральчик). Заодно проверим, что первый потонет с случае всемирного потепления. Как преобразовать её в текстовый формат высот, я думаю, объяснять не стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2009, 22:47:18 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36096777&tid=1344339]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
185ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 492ms |

| 0 / 0 |
