
Крис
08.09.2018
11:52:15
Это немного не то, но суть схожая

Mackenlly
08.09.2018
11:53:03

Юра Незнанов
08.09.2018
11:53:41

Alexander
08.09.2018
11:56:24
Оффтоп

Google

Mackenlly
08.09.2018
12:00:34

Matwey
08.09.2018
12:12:16
Или нужно вообще все возможные треугольники выбрать?

Олег
08.09.2018
12:21:50
Ищем треугольники ABC, где AB = AC.
Зафиксировали A (перебрали во внешнем цикле точку).
Перебрали все остальные точки X, посчитали расстояния AX, отсортировали по нему или засунули в хеш-таблицу.
Получили несколько групп точек с одинаковым расстоянием. Если в какой-то группе k точек, то это порождает k * (k - 1) / 2 треугольников — выбрать B и C из группы.
Осталось вычесть крайние случаи: три точки на одной прямой (которые мы зря посчитали за треугольник) и равносторонние треугольники (которые мы посчитали три раза, а надо один), это оставляется читателю в качестве упражнения.

Matwey
08.09.2018
12:28:55
С чего это?
(0,0) (-2,-2) (2,-2)
равнобедренный треугольник
в чем нетрудно убедиться

Олег
08.09.2018
12:30:29
Ноль равносторонних, а просят равнобедренные.
(Зато это ответ на вторую половину оставленного мной упражнения.)

Matwey
08.09.2018
12:31:00
Про равносторонние я согласен

Arseny
08.09.2018
12:36:53
Мне нравится уверенность с которой рекомендуют диаграмму Вороного.

Igor
08.09.2018
12:44:30

Google

Constantine
08.09.2018
12:45:52

Олег
08.09.2018
12:46:02

Igor
08.09.2018
12:47:49

Олег
08.09.2018
12:49:25
Ах вот так! Ну ладно, ладно :)

Constantine
08.09.2018
12:53:07
Вообще я не знаю, насколько честно оставлять читателям упражнение "посчитайте число равносторонних треугольников с целыми координатами"

Mackenlly
08.09.2018
13:33:32
Я понял, спасибо огромное!

Юра Незнанов
08.09.2018
13:37:11

Basil
08.09.2018
14:00:34
лобовое решение: для N точек имеем N*(N-1)/2 отрезков между ними. вычисляем их, сортируем, потом проверяем все равные на принадлежность общей вершине.
short int достаточно, это меньше 4.5 млн на отрезок.( индексы координат + длина)

Ilia
08.09.2018
14:30:41


Arseny
08.09.2018
15:42:36

Ilia
08.09.2018
15:42:49
Dependency injection
Да бля запихай этот DI себе в зад вместе с Java...
Его и в Java делают все, а нужно оно реально в 5-10% случаев...

Google

Ilia
08.09.2018
15:47:06

Дмитрий
08.09.2018
15:50:52

Ilia
08.09.2018
15:53:15

Дмитрий
08.09.2018
15:56:12
А конкретнее можно?))

Ilia
08.09.2018
15:56:28

Igor
08.09.2018
15:58:06
Вместо сортировки чего?
Расстояний от фиксированной точки до всех остальных. Это сообщение было сарказм, можно расслабиться :)

Ⱪonstantin
08.09.2018
15:59:00

Ilia
08.09.2018
15:59:33
А конкретнее можно?))
Блин,UB это UB.
Это значит по русски "хрен знает" или "хер проссыт" , но это не безнадежно! Это не обязательно, что не будет работать!
Это неизвестность.
А вот вызов функции с тремя параметрами с указанием только одного параметра - это гарантированная, 200% ная жопа.

Дмитрий
08.09.2018
16:00:52
Мне казалось человек наоборот хочет, передать однопараметровую в качестве трех

Ⱪonstantin
08.09.2018
16:01:05
1500*1500=2.250.000 отрезков

Alexander
08.09.2018
16:02:00

Ilia
08.09.2018
16:05:41

Sheldon
08.09.2018
16:10:59
template <typename T>
struct Base {
using Item = typename T::Item;
};
struct X {};
struct Derived: Base<Derived> {
using Item = X;
};
Такое не компилируется, как обходить?

Дмитрий
08.09.2018
16:25:11
Очень много хочешь)
Модно в шаблон добавить параметр чему равен Item

Google

Дмитрий
08.09.2018
16:25:36
С дефолтным

Sheldon
08.09.2018
16:26:28

Andrew
08.09.2018
16:27:48
Вроде сторонним трейтом должно быть можно.

Sheldon
08.09.2018
16:28:18
Хм, вроде вариант.

Matwey
08.09.2018
16:28:42
Точки в эвклидовом пространстве
Делаем R-tree
Строим сетку Делоне
Аааа
Я забыл, что вам нужны любые треугольники
Да пусть даже и так.

Andrew
08.09.2018
16:34:57
Да нет там NP никак, задача сверху оценивается как N^3, решение уже предложили на N^2

Matwey
08.09.2018
16:36:52

Matthew
08.09.2018
16:43:44

Andrew
08.09.2018
16:44:25

Matwey
08.09.2018
16:44:39
Тут надо догадаться какие индексы построить
Вообще задачу можно записать в виде SQL запроса
И отсюда станет понятно мне кажется

Anton
08.09.2018
17:26:41

Google

Dadaskis
08.09.2018
17:39:54

Anton
08.09.2018
17:42:38
Налицо детская травма. Но вот почему? Чем DI жизнь то испортил? (Как идея, а не пример где кто-то не умеет готовить)

Constantine
08.09.2018
17:45:28

Ioann V
08.09.2018
20:24:22
N^2 log N так-то :)
Я согласен полностью. Не знаю где там Илья нашёл NP. Но есть у него привычка, кое какая.

Myvaheed
08.09.2018
20:42:30
Что тут происходит вообще?

Ilia
08.09.2018
21:15:08

Matwey
08.09.2018
21:19:45
@burunduk3 привел выше конструктивное решение

Ilia
08.09.2018
21:20:25
Все уже, не катит...я сплю