|
0 / 0 / 0
Регистрация: 15.01.2018
Сообщений: 5
|
|
Отрезок и точка19.05.2018, 09:28. Показов 3564. Ответов 20
Метки нет (Все метки)
Доброго времени суток)) Есть задача. Отрезок [0 1]. внутри тоже множество отрезков и точка. Найти, скольким отрезкам принадлежит точка. Перебором у меня получается, но препод сказал, что надо за O(LogN)
0
|
|
| 19.05.2018, 09:28 | |
|
Ответы с готовыми решениями:
20
Принадлежит ли отрезок фигуре Разбить отрезок на неравные части Где проведён отрезок: внутри или снаружи многоугольника |
|
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
|
|
| 19.05.2018, 10:13 | |
Сообщение было отмечено Никита_21 как решение
Решение
Никита_21, отсортировать левые концы и правые концы отрезков, бинарным поиском искать там точку, разность между количеством элементов левее точки в первом и во втором массивах - количество отрезков, которым точка принадлежит. Вроде как-то так.
1
|
|
|
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
|
|||||||
| 21.05.2018, 08:06 | |||||||
|
Если все отрезки заданы корректно, то можно определить бинарным поиском, сколько отрезков начинаются раньше точки - в эти отрезки точка попасть может, если они заканчиваются после нее. Далее, находим сколько отрезков заканчиваются раньше точки тоже бинарным поиском - в эти отрезки точка попасть не может. Ну собственно разность - и есть искомое количество содержащих точку отрезков. В результате сложность двух бинарных поисков - O(logN). Понятно, что затраты на сортировку концов отрезков не учитываются, O(logN) - это сложность именно "точечного" запроса. Еще один момент, в том что бинарный поиск должен быть немного разным для правых концов и для левых. В первом случае нужно количество концов не превосходящих току, а во втором - строго меньших. Вот на python, есть уже встроенные функции для этого:
0
|
|||||||
|
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
|
|
| 21.05.2018, 12:06 | |
|
0
|
|
|
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
|
|
| 21.05.2018, 13:15 | |
|
Ромаха, так логарифм-то лучше
128 намного больше log2(128) = 7, например
0
|
|
|
Модератор
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
|
||
| 21.05.2018, 13:28 | ||
|
0
|
||
| 21.05.2018, 13:49 | |||
|
Или O(N) O(xlogx) + O(y*log(x)) Либо O(x log x) + O(x+y) Мол это ж задача на один раз. И трижды не прав тот, кто хочет ее решение за лог
0
|
|||
|
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
|
|||
| 21.05.2018, 13:54 | |||
|
Или может концы отрезков даются уже отсортированными.
0
|
|||
|
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
|
|
| 21.05.2018, 18:54 | |
|
Ромаха, Ну это если все точки сразу известны. А если по запросу поступают, то так не выйдет.
0
|
|
|
Модератор
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
|
|
| 22.05.2018, 10:41 | |
|
0
|
|
|
Модератор
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
|
|||
| 22.05.2018, 13:27 | |||
|
з.ы.
0
|
|||
| 22.05.2018, 13:49 | |||||||
0
|
|||||||
|
Модератор
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
|
|
| 22.05.2018, 18:00 | |
|
0
|
|
| 22.05.2018, 18:17 | ||
|
Давайте подумаем почему. А. Понял. Потому что там не было четко сказано, что запросов много. Для большого количества точек я привел решение. O(NlogN+N)
0
|
||
| 22.05.2018, 18:17 | |
|
Помогаю со студенческими работами здесь
20
Почему в бинарном поиске сначала ищется отрезок [2**p, 2**(p+1)] ведь асимптотически сложность такая же
На отрезок [0,2] наугад бросается точка На отрезок ab длины a нанесена точка C Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
|
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
На примере нетипового документа разработанного в конфигурации КА2.
В качестве источника данных указан регистр накопления, в который записываются данные о. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|