• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie litery OI, Drzewa przedziałowe vs Drzewa licznikowe

VPS Starter Arubacloud
0 głosów
673 wizyt
pytanie zadane 3 stycznia 2023 w Algorytmy przez pasjonat_algorytmiki Pasjonat (19,540 p.)
edycja 3 stycznia 2023 przez pasjonat_algorytmiki
Robiac zadanie z OI-a: https://szkopul.edu.pl/problemset/problem/V1PYHlhJQGTY6KR5ODoTTYU4/site/?key=statement napisałem kod na 100pkt, drzewami przedziałowymi przedział - punkt, bardzo prosty 60linii. w książeczce OI pisze:

Do tego służyć może struktura danych zwana drzewem licznikowym lub przedziałowym2 . Jest to statyczne drzewo binarne zbudowane nad tablicą liczb t[1. .n]; pozwala ono na wykonywanie w czasie O(log n) następujących operacji:

ustaw(i, x) — przypisz t[i] := x;

suma(l, r) — zwróć sumę t[l] + t[l + 1] + . . . + t[r], przy czym l ¬ r.

1 - Drzewo licznikowe to to samo co drzewo przedziałowe przedział - punkt?

2 - Na Oi-a, polecacie jeszcze jakies struktury z przedzialami oprocz drzew przedział-punkt,punkt-przedział?

3 - Znacie jakies fajne zadania na drzewa przedziałowe?

Ps. Jak ktoś robi to zadanie, to polecam też popatrzeć na zadanie Kulki z finału 15 OIJ-a. Bardzo podobne.

Z góry dziękuję za odpowiedź i poświęcony czas!

edit: nwm czy dobrze przeczytalem, ale jesli to to ze trzyma sume wszystkich swoich potomkow w drzewie, to mozna drzewo podzielic dfs-em post order dodac na ciag i zrobic drzewo przedizał-punkt. Tylko nwm czy to jest drzewo licznikowe.

1 odpowiedź

+1 głos
odpowiedź 4 stycznia 2023 przez Whistleroosh Maniak (57,360 p.)

Drzewo licznikowe to tylko szczególna wersja drzewa przedziałowego punkt-przedział która zlicza sume na przedziale. Samo drzewo przedziałowe punkt-przedział może obliczać dowolną funkcję agregującą na przedziale np. max, xor itd.

Co ciekawe w g++ jest dostępna struktura bardzo podobna do drzewa licznikowego (link)

Na pewno trzeba jeszcze znać drewo przedział-przedział, dynamiczne drzewo przedziałowe, a także warto wiedzieć o drzewie Fenwicka

komentarz 4 stycznia 2023 przez Whistleroosh Maniak (57,360 p.)

Jeżeli chodzi o jakieś zadanie to np. licznik długu z I etapu OI sprzed 2 lat

komentarz 4 stycznia 2023 przez pasjonat_algorytmiki Pasjonat (19,540 p.)
dzięki.

Podobne pytania

0 głosów
0 odpowiedzi 250 wizyt
0 głosów
1 odpowiedź 484 wizyt
pytanie zadane 2 lutego 2023 w C i C++ przez polandonion Dyskutant (7,560 p.)

93,004 zapytań

141,969 odpowiedzi

321,248 komentarzy

62,340 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...