@ProCxx

Страница 697 из 2477
Daniil
23.03.2017
16:00:57
а ирл такое хоть когда-нибдуь нужно?

кроме клика мышью по экрану... )))

Pavel
23.03.2017
16:01:06
оч маловероятно

Alexander
23.03.2017
16:01:07
Google
Pavel
23.03.2017
16:01:16
в реальной жизни всем надо сайты и игры)))))

Alexander
23.03.2017
16:01:16
оч маловероятно
у коллеги такая таска

Timofey
23.03.2017
16:01:40
Ну просто если не забивать, то быстрее квадрата не посчитаешь, потому что для формирования ответа уже квадрат по времени нужен.

забей на это.

Эдуард
23.03.2017
16:07:23
да #pragma once
Сможет разрулить разве?

а ирл такое хоть когда-нибдуь нужно?
Выделение объектов рамкой на рабочем столе? Как пример задачи

Pavel
23.03.2017
16:07:53
на практике явно слонжность не будет првоеряться %)

ибо кейс экрана 16m на 16m вряд ли будет :)

Sasha
23.03.2017
16:11:13
Timofey
23.03.2017
16:12:18
Ну, строго говоря, асимптотику лучше квадрата в худшем случае ты не получишь. Потому что если в первом квадрате лежат все, во втором - все, кроме первого, в третьем - все, кроме первого и второго, итд, то ответ будет иметь размер N-1 + N-2 +... + 1 + 0 = (N-1)*(N)/2. Вот такая печаль

Задача: есть N прямоугольников, заданные координатами своих углов. Требуется для каждого прямоугольника найти все прямоугльники, внутри которых он находится полностью. Оффлайн задача. Требуется решение быстрее, чем за N^2

Google
Timofey
23.03.2017
16:12:52
А если хочется в среднем, то стоит указать, какие именно средние варианты нужны.

/2

Alexander
23.03.2017
16:14:03
А если хочется в среднем, то стоит указать, какие именно средние варианты нужны.
Так, хорошо. Мне нужно что-то порядка (N+Ans)*logN, где N - кол-во прямоугольников, Ans - количество вложенных прямоугольников в другие, N » Ans

Ключевое: N много больше Ans. Требуется улучшение асимптотики с квадрата до чего-нибудь быстрее

Timofey
23.03.2017
16:15:13
Да вижу

N*Ans не устроит?)

Alexander
23.03.2017
16:16:48
Timofey
23.03.2017
16:17:05
Скорее, имелось в виду Ans << N^2

Alexander
23.03.2017
16:17:23
очепятка

Решено

2 dimensional interval tree

это для проверок вложенности

также стояла задача поиска всех прямоугольников, к оторые пересекаются друг с другом - это решается обычным сканлайном

Mikhail
23.03.2017
16:25:32
Задача: есть N прямоугольников, заданные координатами своих углов. Требуется для каждого прямоугольника найти все прямоугльники, внутри которых он находится полностью. Оффлайн задача. Требуется решение быстрее, чем за N^2
помечаем все вершины одного прямоугольника одной буквой, например первый прямоугольника все вершины А, второй Б и так далее. Потом отмечаем на каждой оси проекции этих вершин. Должны получиться последовательности типа АБВВВБАА на каждой их оси. Дальше теорема, один прямоугольника включается в другой тогда и только тогда, когда проекции его вершин лежат между двумя крайним проекциями другого прямоугольника на обоих осях

Surreal
23.03.2017
16:27:27
Сделайте вектор самых левых X координат, отсортируйте его и делайте обход по отсортированному вектору.

Google
Timofey
23.03.2017
16:31:48
Не должно зайти. Обход все равно останется квадратичным по сложности

Сделайте вектор самых левых X координат, отсортируйте его и делайте обход по отсортированному вектору.

Mikhail
23.03.2017
16:32:00
За четыре обхода решается но с n^2 по памяти

Timofey
23.03.2017
16:33:17
за сколько там N^2 памяти выделяется? Не за О(N^2) ли случайно?)

Alexander
23.03.2017
16:34:02
за сколько там N^2 памяти выделяется? Не за О(N^2) ли случайно?)
а с каких пор мы стали учитывать в асимптотику выделение памяти?

Timofey
23.03.2017
16:34:03
Автор же нашел решение

Alexander
23.03.2017
16:35:01
Автор же нашел решение
Если есть проще...

Timofey
23.03.2017
16:35:06
а с каких пор мы стали учитывать в асимптотику выделение памяти?
Ладно, но это смотря с какой стороны посмотреть) В терминах математики выделение памяти это константа

Timofey
23.03.2017
16:35:33
ну да

Alexander
23.03.2017
16:35:40
Сейчас решение Михаила гляну. Скорее всего, я неправильно понял его мысль

Timofey
23.03.2017
16:38:39
На практике каких значений достигает N?

Alexander
23.03.2017
16:40:17
На практике каких значений достигает N?
Не знаю. Потенциально порядки тысяч-десятков тысяч

Matway
23.03.2017
16:45:32
Всем привет. В 20:00 кину задачу на C++. Задача интересная, поэтому просьба - не спойлерить! Ответы слать мне в личку. Я напишу в этот чат никнеймы тех, кто решил задачу правильно. Задача является разновидностью известной задачи "циклическая космическая станция", но с дополнительными ограничениями, которые заставляют напрячь не столько общую логику, сколько опыт программиста.

Matway
23.03.2017
16:51:13
а в чем профит? зачем тратить на нее время?
Некоторые любят напрячь мозги, когда есть свободное время.

Andrei
23.03.2017
16:53:43
а в чем профит? зачем тратить на нее время?
А в чем профит читать техническую литературу в нерабочее время, а в чём профит делать свои игрушечные проекты, за которые тебе не платят?

Google
Alexey
23.03.2017
16:56:59
А в чем профит читать техническую литературу в нерабочее время, а в чём профит делать свои игрушечные проекты, за которые тебе не платят?
Ты читаешь\делаешь проект потому что тебе ТЕМА ИНТЕРЕСНА и ты меняешь время на знания, которые ты хочешь получить.

Alexander
23.03.2017
16:57:31
Можно kdtree заюзать, будет что-то типа O(nlogn)
я так и не понял, как там kdtree заюзать. А вот как заюзать 2 dimensional interval tree - знаю

но тут прокатит и решение проще, которое Михаила

Matway
23.03.2017
17:00:32
http://ideone.com/q7d6yl #CircularStationTask #Задача

Необходимо дописать код в функцию Task::explore(). Функция должна выйти после того, как весь свет на станции выключен.

Artem
23.03.2017
17:06:22
Можно использовать for, но нельзя использовать локальные переменные?

Matway
23.03.2017
17:06:35
Да. Локальные переменные запрещены.

Artem
23.03.2017
17:07:33
То есть только for без счетчика

Alexander
23.03.2017
17:13:02
Artem
23.03.2017
17:19:49
Не придумывается, как без счетчика сделать :(

Sergey
23.03.2017
17:27:50
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
23.03.2017
17:28:23
Можно, но задача в другом :)

Sergey
23.03.2017
17:28:40
Да я так, просто, не смог пройти мимо :)

Matway
23.03.2017
17:29:15
Первое корректное решение - @AndreiKr .

Anna
23.03.2017
17:32:02
Alex Фэils?︙
23.03.2017
17:32:30
Anna
23.03.2017
17:33:17
Первое корректное решение - @AndreiKr .
Тот самый Андрей, которого я знаю?)

F.L
23.03.2017
17:33:21
тут есть кто в sql шарит?

Matway
23.03.2017
17:34:46
Andrei
23.03.2017
17:35:34
Google
Matway
23.03.2017
17:37:11
я не удивлен)
Почему? Остальные 1013 мемберов данного чата не любят задачки? :)

Anna
23.03.2017
17:38:07
да не. все всё любят
многие просто еще на работе)

Andrei
23.03.2017
17:38:59
Добрый вечер :)

Anna
23.03.2017
17:39:08
да не. все всё любят
Сам то решишь?

Alex Фэils?︙
23.03.2017
17:39:53
Сам то решишь?
не хочу, я ща работаю. и да, лучше пометить тегами задачки, чтоб потом проще было искать

Matway
23.03.2017
17:40:51
Пометил. CircularStationTask.

Alexander
23.03.2017
17:40:55
Сам то решишь?
Просто некоторые пока что на рабо те работу работают)

Alex Фэils?︙
23.03.2017
17:41:16
Пометил. CircularStationTask.
и просто тегом "задача" тогда

Matway
23.03.2017
17:41:44
Сделал.

Alex Фэils?︙
23.03.2017
17:41:59
Сделал.
благодарю

Matway
23.03.2017
17:43:09
Сам то решишь?
Провокаторша :) Задача не на время, совсем. Нечего людей дразнить. У кого будет желание, а главное, время - те и покумекают :)

/dev
23.03.2017
17:43:48
Но если тебе просто дерева вложенности хватит, то можно за NlogN

Matway
23.03.2017
17:51:05
Блин. Самое сложное - сформулировать условия задачи. Нашёлся умный человек :) В общем, статические переменные тоже нельзя.

Vitaliy
23.03.2017
17:51:36
А монады можно?

Matway
23.03.2017
17:52:01
Хочу видеть.

Vitaliy
23.03.2017
17:52:38
А, ну я задачу не прочитал — просто подумал, что что-то, в чем надо обойтись без локальных переменных и вспомнил монады :)

Matway
23.03.2017
17:57:07
Почему нельзя статические переменные
Всё, что можно, перечислено в строке 40. // Use only 'next()', 'previous()', 'isLightEnabled()', 'toggleLight()', 'do', 'for', 'if', 'while' and 'return'

Страница 697 из 2477