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

Zadanie Zdjęcia OIG. Zamiatanie oraz sqrt decomposition/drzewa przedział - przedział

VPS Starter Arubacloud
0 głosów
462 wizyt
pytanie zadane 16 lutego 2023 w Algorytmy przez pasjonat_algorytmiki Pasjonat (19,540 p.)
otagowane ponownie 17 lutego 2023 przez pasjonat_algorytmiki
Mam problem z takim zadaniem: https://szkopul.edu.pl/problemset/problem/G9Fs1g7hoS5uG9eeV84d0Axr/site/?key=statement

Gdzieś wyczytałem, że można to zrobić jakimś drzewem przedziałowym, ale mam problem, bo nie wiem jak napisać drzewo przedziałowe 2D. Umiem zwykłe drzewa przedziałowe 1D, ale 2D, to sobie trochę nie wyobrażam jak to zrobić. Ma ktoś pomysł?

A i umiem zrobić to zadanie na przedziale 1D,w sensie mam os liczbową, i drzewo przedział punkt, z dodaniem na przedziale i odczytem w punkcie, bo x_i oraz y_i są w przedziale [-200000,200000], więc starczy mi pamięci.

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

1 odpowiedź

+1 głos
odpowiedź 17 lutego 2023 przez Whistleroosh Maniak (57,360 p.)
wybrane 17 lutego 2023 przez pasjonat_algorytmiki
 
Najlepsza

Drzewo przedziałowe 2D to trochę overkill. Z tego co wiem na OI nie mają prawa pojawić się przepływy, więc tym bardziej nie będzie takich skomplikowanych struktury danych jak drzewo przedziałowe 2D, sufiksowe itd.

Ale jak chcesz się z nimi zapoznać to zapytanie na drzewie o d wymiarach działa w O(log^dn). Tutaj opis jak działają

Samo zadanie można zrobić prościej. Słowa kluczowe: zamiatanie + drzewo przedziałowe 1D

1
komentarz 17 lutego 2023 przez Whistleroosh Maniak (57,360 p.)
edycja 18 lutego 2023 przez Whistleroosh

Jedyne zadanie na zamiatanie które pamiętam to Zamek

komentarz 17 lutego 2023 przez pasjonat_algorytmiki Pasjonat (19,540 p.)

@Whistleroosh, 

Dzięki za tak obszerne komentarze! Widzę, że fajne rzeczy masz na githubie, więc napewno się przyjrzę! Jeszcze raz dzięki za zadanka. 

A co do sum prefiksowych to włączenia i wyłączenia. S[i][j] = A[i][j] + S[i-1][j] + S[i][j-1] - S[i-1][j-1].

Dochodzę do siebie, bo tym zamiataniu xD, ta technika jest super. Pamiętam jak jakiś rok temu patrzyłem na to zadanie, i myślałem że to jakiś kosmos dla geniuszy oświeconych xD

komentarz 17 lutego 2023 przez pasjonat_algorytmiki Pasjonat (19,540 p.)

@Whistleroosh, 

A propos sqrt, to wydaje mi się, że często nawet jak n<=10^6, to często wchodzi na np. 70pkt, a jak N <= 5*10^5, to też często wchodzi, nie mówiąc już jak N <= 10^5 lub N <= 2*10^5. Czy nawet trochę więcej. 

komentarz 18 lutego 2023 przez Whistleroosh Maniak (57,360 p.)
Jeszcze wracając do tego pierwiastka to warto żebyś nauczył się o tym algorytmie Mo. On też działa w O(nsqrt(n)), ale wyobraźmy sobie taki problem, że mamy tablicę n liczb i q zapytań. Każde zapytanie pyta ile jest różnych liczb w tablicy na pozycjach a...b Tą metodą z której skorzystaliśmy w tym zadaniu nie da się tego szybko zrobić, ale algorytm Mo jak najbardziej zrobi to w chyba O((n+q)sqrt(n))
komentarz 10 kwietnia 2023 przez pasjonat_algorytmiki Pasjonat (19,540 p.)
tak apropo, to jeszcze fajne zadanie na zamiatanie to kopalnia złota z finału OI.

Podobne pytania

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

93,020 zapytań

141,982 odpowiedzi

321,283 komentarzy

62,366 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!

...