Коледж алгоритмічного програмування

    Лекція Сімнадцята (Сезон Другий)

    Сімнадцята лекція другого сезону відбудеться 24 березня о 18 годині у конференційній залі на третьому поверсі.

    Лекцію ведуть: Ігор та Oracle.

    Тема: Дерева відрізків.

    На порядку денному:

    • Основна ідея структури даних;
    • Постановка класичних задач на дерева відрізків;
    • Модифікації на способи реалізації;
    • Багатовимірні випадки.
    17.03.2011 | Shef | 6 коментарів

    6 коментарів to “Лекція Сімнадцята (Сезон Другий)”

    1. Morgan каже:
      18.03.2011 о 10:09

      У мене питання по минулій лекції – задача про точку і відрізок:
      Для того, щоб вектор, що виходить з даної точки був перпендикулярним до другого вектора, треба щоб скалярний добуток дорівнював 0. То я зрозумів.А от як тепер знайти саме ту точку на відрізку, на яку буде опущений той перпендикулярний вектор?

    2. sashka каже:
      23.03.2011 о 22:58

      Так як я і розказував, треба записати рівняння прямої в параметричному вигляді (параметром буде альфа), тобто фактично виразити будь яку точку на прямій, як залежність від параметру альфа. Тоді давай розглянемо різницю того вектора(який є точкою в умові) та деякою точкою на прямій, в якій лежить даний відрізок. Знайдемо довжину цього вектора, або ще краще квадрат довжини. Тоді нам фактично треба знайти мінімум цієї довжини(це якраз і буде той самий перпендикуляр). Можна побачити що в нас буде залежність тільки від альфа в записаному виразі. Знаходимо значення альфа, в яких досягається нуль похідної. Після того точка може не попасти у відрізок, а лише на пряму. Тому далі альфа “обрізаємо” так щоб він потрапив у відрізок [0, 1], це якщо використовувати той запис, який я писав. То виглядає що це багато написано і багато роботи, але насправді це дуже просто пишеться.

      Задавайте питання, не соромтесь, якщо щось незрозуміло буде, або навіть якщо після відповіді щось залишиться незрозумілим, то уточнюйте.

    3. Squire каже:
      26.03.2011 о 13:59

      Можна уточнити умову . . . потрібно опустити перпендикуляр з точки на відрізок. А, якщо перпендикуляр опуститься лише на пряму, на якій лежить відрізок, то що робити?

    4. sashka каже:
      27.03.2011 о 15:45

      Це було запитання стосовно домашнього завдання до лекції пятнадцять:
      http://acm.lviv.ua/fusion/viewpage.php?page_id=9&id=1306&

    5. Squire каже:
      29.03.2011 о 13:52

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

    6. sashka каже:
      29.03.2011 о 19:47

      Безумовно Ваш метод теж працюватиме. Але він насправді вимагає більше коду, або принаймні якщо не більше – то коду, в якому легше помилитись, для прикладу в якомусь індексі. Тим більше метод який було розказано на лекції, та частково описаний тут, в коментарях, є більш загальнішим. Уявіть що вам потрібно розвязати ту саму задачу, але вже в просторі, при цьому ідея залишиться тою самою, єдине що принципово зміниться – це формула для скалярного добутку, тепер вона матиме три доданки. Ще підхід можна узагальнити і для інших, складніших задач. А похідну не так вже й складно знайти для виразів даного типу.

    Leave a Reply

    Клацніть, щоб скасувати відповідь.

    CAPTCHA Image CAPTCHA Audio
    Refresh Image
    Лекція Вісімнадцята (Сезон Другий)
    Лекція Шістнадцята (Сезон Другий)
     
    • Банери

    • Категорії

      • Змагання (2)
      • Лекції (149)
      • Некатегоризовано (12)
      • Розбір задач (13)
      • свято (4)
    • Архіви

      • Жовтень 2016 (1)
      • Квітень 2016 (3)
      • Березень 2016 (5)
      • Лютий 2016 (3)
      • Грудень 2015 (3)
      • Листопад 2015 (1)
      • Травень 2015 (1)
      • Квітень 2015 (4)
      • Березень 2015 (4)
      • Лютий 2015 (3)
      • Грудень 2014 (2)
      • Листопад 2014 (4)
      • Жовтень 2014 (5)
      • Вересень 2014 (1)
      • Травень 2014 (2)
      • Квітень 2014 (3)
      • Березень 2014 (3)
      • Лютий 2014 (1)
      • Грудень 2013 (3)
      • Листопад 2013 (4)
      • Жовтень 2013 (4)
      • Травень 2013 (2)
      • Квітень 2013 (4)
      • Березень 2013 (4)
      • Лютий 2013 (4)
      • Листопад 2012 (7)
      • Жовтень 2012 (2)
      • Травень 2012 (1)
      • Квітень 2012 (4)
      • Березень 2012 (5)
      • Лютий 2012 (4)
      • Грудень 2011 (3)
      • Листопад 2011 (4)
      • Жовтень 2011 (4)
      • Вересень 2011 (3)
      • Травень 2011 (2)
      • Квітень 2011 (5)
      • Березень 2011 (4)
      • Грудень 2010 (4)
      • Листопад 2010 (5)
      • Жовтень 2010 (4)
      • Вересень 2010 (3)
      • Травень 2010 (4)
      • Квітень 2010 (4)
      • Березень 2010 (6)
      • Лютий 2010 (3)
      • Січень 2010 (1)
      • Грудень 2009 (7)
      • Листопад 2009 (2)
      • Жовтень 2009 (2)
    • ACM-Контестер

      • ACM-Contester Архів задач із автоматичною системою тестування “ACM Contester”.
    • Мета

      • Зареєструватись
      • Вхід
      • RSS публікацій
      • RSS коментарів
    

    © 2026 Коледж алгоритмічного програмування is proudly powered by WordPress | Constructor Theme
    Entries (RSS) and Comments (RSS).
    Наші проекти: Контестер, _Колледж.