Timofey
Ну может для этого есть отдельная группа, не привязанная к конкретному языку.
Daniil
а ирл такое хоть когда-нибдуь нужно?
Daniil
кроме клика мышью по экрану... )))
Pavel
оч маловероятно
Pavel
в реальной жизни всем надо сайты и игры)))))
Timofey
Ну просто если не забивать, то быстрее квадрата не посчитаешь, потому что для формирования ответа уже квадрат по времени нужен.
Timofey
забей на это.
Pavel
на практике явно слонжность не будет првоеряться %)
Pavel
ибо кейс экрана 16m на 16m вряд ли будет :)
Sasha
Sasha
Ок
Timofey
Ну, строго говоря, асимптотику лучше квадрата в худшем случае ты не получишь. Потому что если в первом квадрате лежат все, во втором - все, кроме первого, в третьем - все, кроме первого и второго, итд, то ответ будет иметь размер N-1 + N-2 +... + 1 + 0 = (N-1)*(N)/2. Вот такая печаль
Timofey
Задача: есть N прямоугольников, заданные координатами своих углов. Требуется для каждого прямоугольника найти все прямоугльники, внутри которых он находится полностью. Оффлайн задача. Требуется решение быстрее, чем за N^2
Timofey
А если хочется в среднем, то стоит указать, какие именно средние варианты нужны.
Timofey
/2
Timofey
Да вижу
Timofey
N*Ans не устроит?)
Timofey
Скорее, имелось в виду Ans << N^2
Mikhail
помечаем все вершины одного прямоугольника одной буквой, например первый прямоугольника все вершины А, второй Б и так далее. Потом отмечаем на каждой оси проекции этих вершин. Должны получиться последовательности типа АБВВВБАА на каждой их оси. Дальше теорема, один прямоугольника включается в другой тогда и только тогда, когда проекции его вершин лежат между двумя крайним проекциями другого прямоугольника на обоих осях
Surreal
Сделайте вектор самых левых X координат, отсортируйте его и делайте обход по отсортированному вектору.
Mikhail
Да
Timofey
Не должно зайти. Обход все равно останется квадратичным по сложности
Timofey
Сделайте вектор самых левых X координат, отсортируйте его и делайте обход по отсортированному вектору.
Mikhail
За четыре обхода решается но с n^2 по памяти
Timofey
за сколько там N^2 памяти выделяется? Не за О(N^2) ли случайно?)
Timofey
Автор же нашел решение
Timofey
Ладно, но это смотря с какой стороны посмотреть)
В терминах математики выделение памяти это константа
Timofey
ну да
Timofey
На практике каких значений достигает N?
Surreal
Matway
Всем привет. В 20:00 кину задачу на C++. Задача интересная, поэтому просьба - не спойлерить! Ответы слать мне в личку. Я напишу в этот чат никнеймы тех, кто решил задачу правильно.
Задача является разновидностью известной задачи "циклическая космическая станция", но с дополнительными ограничениями, которые заставляют напрячь не столько общую логику, сколько опыт программиста.
Alexey
Sergey
Можно kdtree заюзать, будет что-то типа O(nlogn)
Alexey
Matway
http://ideone.com/q7d6yl
#CircularStationTask
#Задача
Matway
Необходимо дописать код в функцию Task::explore(). Функция должна выйти после того, как весь свет на станции выключен.
Artem
Можно использовать for, но нельзя использовать локальные переменные?
Matway
Да. Локальные переменные запрещены.
Artem
То есть только for без счетчика
Artem
Не придумывается, как без счетчика сделать :(
Sergey
http://ideone.com/q7d6yl
#CircularStationTask
#Задача
Task() {
std::mt19937 generator((std::random_device()()));
lights.resize(size_t(STATION_SIZE));
for (int i = 0; i < STATION_SIZE; ++i) {
lights[i] = std::uniform_int_distribution<>(0, 1)(generator) != 0;
}
room = 0;
}
Можно моднее сделать:
Task() : lights(STATION_SIZE), room() {
std::mt19937 generator((std::random_device()()));
std::generate(std::begin(lights), std::end(lights), std::bind(std::uniform_int_distribution<>(0, 1), std::ref(generator)));
}
Matway
Можно, но задача в другом :)
Sergey
Да я так, просто, не смог пройти мимо :)
Matway
Первое корректное решение - @AndreiKr .
Anna
🦥Alex Fails
Anna
Купи
тут есть кто в sql шарит?
Matway
Andrei
Matway
я не удивлен)
Почему? Остальные 1013 мемберов данного чата не любят задачки? :)
🦥Alex Fails
Anna
Andrei
Добрый вечер :)
Anna
🦥Alex Fails
Сам то решишь?
не хочу, я ща работаю. и да, лучше пометить тегами задачки, чтоб потом проще было искать
Matway
Пометил. CircularStationTask.
Matway
Сделал.
🦥Alex Fails
Matway
Сам то решишь?
Провокаторша :) Задача не на время, совсем. Нечего людей дразнить. У кого будет желание, а главное, время - те и покумекают :)
Nikita
Вот у тебя N вложенных друг в друга прямоугольников. Один вывод ответа займет квадрат времени
Nikita
Но если тебе просто дерева вложенности хватит, то можно за NlogN
Matway
Блин. Самое сложное - сформулировать условия задачи. Нашёлся умный человек :)
В общем, статические переменные тоже нельзя.
Vitaliy
А монады можно?
Matway
Хочу видеть.
Vitaliy
А, ну я задачу не прочитал — просто подумал, что что-то, в чем надо обойтись без локальных переменных и вспомнил монады :)
Evgenii
Matway
Почему нельзя статические переменные
Всё, что можно, перечислено в строке 40.
// Use only 'next()', 'previous()', 'isLightEnabled()', 'toggleLight()', 'do', 'for', 'if', 'while' and 'return'
Matway
Больше ничего. Вообще ничего. Только круглые, фигурные скобки и точки с запятой.
Эдвард
Эдвард
понял
🦥Alex Fails
кстати. есть чат про алгоритмы. @proalgorithms
Mikhail
Всё, что можно, перечислено в строке 40.
// Use only 'next()', 'previous()', 'isLightEnabled()', 'toggleLight()', 'do', 'for', 'if', 'while' and 'return'
стоило бы добавить, что обращения к существующим переменным тоже запрещены)