Size: a a a

2021 April 04

С

Сергей in pro.algorithms
Evgenii Zheltonozhskii🇮🇱
А если поделить плоскость на квадраты 20*20? (Дальше я ещё не придумал)
получим дерево квадрантов ) диапазон не маленький - от -10^9 до 10^9/
источник

EZ

Evgenii Zheltonozhsk... in pro.algorithms
Сергей
получим дерево квадрантов ) диапазон не маленький - от -10^9 до 10^9/
Ну для этого и хеши
источник

EZ

Evgenii Zheltonozhsk... in pro.algorithms
Anatoly Tomilov
тебе нужна диаграмма Вороного
А как она тут поможет, лучшая точка ж может вообще не быть ближайшей ни к одной точке типа Б
источник

AT

Anatoly Tomilov in pro.algorithms
Anatoly Tomilov
тебе нужна диаграмма Вороного
а, есть ограничение на макс. расстояние
источник

С

Сергей in pro.algorithms
Anatoly Tomilov
тебе нужна диаграмма Вороного
спасибо, посмотрю. Но , блин, ещё раз задача в курсе чуть посложнее чем для ПТУ - до кодефорса даже самого слабого дивизиона курс не дотягивает, вот что останавливает от залезания в дебри (
источник

CD

Constantine Drozdov in pro.algorithms
Сергей
получим дерево квадрантов ) диапазон не маленький - от -10^9 до 10^9/
Зачем дерево?
источник

С

Сергей in pro.algorithms
Constantine Drozdov
Зачем дерево?
а как еще квадрат размера 2*10^9 по одному измерению я в память затолкаю?
источник

CD

Constantine Drozdov in pro.algorithms
Сергей
а как еще квадрат размера 2*10^9 по одному измерению я в память затолкаю?
не понял вопроса
источник

AT

Anatoly Tomilov in pro.algorithms
решить можно так: для каждой точки A и B задаёшь координату вдоль Z-order curve. Это делается "смешиванием" бит координат x и y так, что они чередуются. Сортируешь этот массив — у тебя линеаризованное квадродерево. Внутри ячеек со стороной >= 60 метров уже просто в два цикла проходишься по точкам, попавшим в ячейку.
источник

EZ

Evgenii Zheltonozhsk... in pro.algorithms
Сергей
а как еще квадрат размера 2*10^9 по одному измерению я в память затолкаю?
У тебя максимум 10^6 непустых квадратов
источник

CD

Constantine Drozdov in pro.algorithms
Сергей
а как еще квадрат размера 2*10^9 по одному измерению я в память затолкаю?
сделал unordered_map<pair<int, int>, vector<points>> где первое это { point.x / 20, point.y / 20 }
источник

CD

Constantine Drozdov in pro.algorithms
проверил 9 штук
источник

AT

Anatoly Tomilov in pro.algorithms
Anatoly Tomilov
решить можно так: для каждой точки A и B задаёшь координату вдоль Z-order curve. Это делается "смешиванием" бит координат x и y так, что они чередуются. Сортируешь этот массив — у тебя линеаризованное квадродерево. Внутри ячеек со стороной >= 60 метров уже просто в два цикла проходишься по точкам, попавшим в ячейку.
а нет. Не годится. Нужно соседние просматривать
источник

EZ

Evgenii Zheltonozhsk... in pro.algorithms
Constantine Drozdov
сделал unordered_map<pair<int, int>, vector<points>> где первое это { point.x / 20, point.y / 20 }
А если все в одном квадрате
источник

EZ

Evgenii Zheltonozhsk... in pro.algorithms
Например
источник

CD

Constantine Drozdov in pro.algorithms
Evgenii Zheltonozhskii🇮🇱
А если все в одном квадрате
да там наверняка координаты целые и различные
источник

CD

Constantine Drozdov in pro.algorithms
можно два фора вокруг точки, но так запросов к мапе больше
источник

AT

Anatoly Tomilov in pro.algorithms
а сильно по времени не проходишь?
источник

EZ

Evgenii Zheltonozhsk... in pro.algorithms
Constantine Drozdov
да там наверняка координаты целые и различные
Тогда скучно
источник

С

Сергей in pro.algorithms
Constantine Drozdov
да там наверняка координаты целые и различные
координаты - целые да. О различных речи нет. а в чем глубинный смысл point.x / 20?? не пойму (
источник