|
|
|
|
|
|
|
Вернуться
| 1 Неизвестный, 21 июня 2018 г. 13:00:12 | |
|
Ток я знал как зделать ету програму просто думал можна ли по другому делать или нет, но вы меня навернули в нужное русло, благодарю за помощь
|
|
|
| 2 Неизвестный, 21 июня 2018 г. 12:42:50 | |
|
Спасибо большое)
|
|
|
| 3 Тер-Саркисов Богдан Олегович, 20 июня 2018 г. 14:35:49 | |
У тебя и не получится выделить столько памяти. Ну, сам посчитай. Пусть ячейка хранит 1 байт. Тогда тебе для хранения массива 10^6*10^6 потребуется 10^12 байт = 931.3 ГБ памяти. Делай, как говорят тебе ниже: храни множество пар координат в set<pair<int, int>>. Пара координат (x, y) хранится в виде pair<int, int>. Допустим, ты пытаешься перейти в ячейку с координатами (x, y). Сначала проверяешь, находится ли эта пара координат в set'e. Если находится, то ты ее раньше клал туда, то есть уже побывал в ячейке с этими координатами (если говорить про змейку, то змейка столкнулась со своим хвостом). Если не находится, то кладешь пару координат в set и двигаешься дальше.
|
|
|
| 4 Неизвестный, 19 июня 2018 г. 21:44:54 | |
Я знаю что в паскале можно делать масив с отрицательнимы индексами бо я с него начинал,но такого обьема нельзя,ну я пробую у меня програма не запускается,может подскажете как оголосить масив длины 10^6*10^6 или даже больше,или все таки нельзя?
|
|
|
| 5 Неизвестный, 18 июня 2018 г. 18:55:54 | |
И да я хотел зделать масив размером 10^6*10^6 а идёт стек.А воопше нету масива из отрицательнимы индексами? В языке Паскаль можно создавать массивы с отрицательными индексами, но и в других языках проблем с этим нет, т.к. всегда можно добавлять к индексам какое-нибудь положительное число. Но в Вашем случае скорее всего (если речь о С++) удобнее будет обойтись структурой вида map<pair<int,int>, int>. Конечно, это работает медленнее статического массива, зато в данной структуре могут храниться только нужные элементы. Но если речь идет о змейке, то вообще достаточно использовать set<pair<int,int>>. Если же известно, что диапазон возможных координат небольшой, то можно и статическим массивом обойтись.
|
|
|
| 6 Неизвестный, 18 июня 2018 г. 18:53:13 | |
|
да но смысл хранить координаты?потом как найти когда змейка столкнётся?Ето решения я знаю,но можно както добавлять ячейку где нужно, и проверать наличее на следующем ходу,если есть ячейка,то выходить из цикла.
|
|
|
| 7 Тер-Саркисов Богдан Олегович, 18 июня 2018 г. 17:56:14 | |
|
Можно set для координат (x, y) сделать, там хранить отмеченные координаты. Либо в map хранить соответствие (x, y) -> value. Количество операций, как я понимаю, не больше 1000000, потому что ты хотел зарезервировать поле 1000000*1000000.
|
|
|
| 8 Неизвестный, 18 июня 2018 г. 16:57:32 | |
|
Смотрите,мне надо так добавлять елементы для того чтоб выяснить где у меня уже стоит на последуещем ходе слот. Тоесть:у меня есть команды R-добавлять вправо елемент, L-влево , U-вверх , D-вниз,и дана строка из етих команд: s = RRRUULLDRRD, и мне надо опредилить когда у меня уже на следующий ход етой в етом слоте уже будёт чтото,а не NULL. Ето как змейка,надо определить на каком ходу она столкнется со своим телом.Спасибо за ваши старания.
|
|
|
| 9 Меньшиков Фёдор Владимирович, 18 июня 2018 г. 15:55:00 | |
|
Можно прикинуться, что добавил и ничего не делать. Вы же не написали что дальше от этого массива нужно. Оптимизации сильно зависят от того, что именно нужно сделать, что посчитать.
|
|
|
Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!
| | | |