Struttura dei dati per trattenere e recuperare i punti su un piano
-
01-11-2019 - |
Domanda
Definizione 1: Punto $ (x, y) $ sta controllando il punto $ (x ', y') $ se e solo se $ x <x '$ e $ y <y' $.
Definizione 2: Il punto $ (x, y) $ è controllato dal punto $ (x ', y') $ se e solo se $ x '<x $ e $ y' <y $.
Sto cercando di trovare la struttura dei dati per supportare le seguenti operazioni:
$ mathrm {add} (x, y) $ - aggiunge un punto $ (x, y) $ al sistema in $ mathcal {o} ( log n) $ complessità dove $ n $ è il numero di punti in il sistema.
$ mathrm {remove} (x, y) $ - rimuove un punto $ (x, y) $ dal sistema in $ mathcal {o} ( log n) $ complessità dove $ n $ è il numero di punti in il sistema.
$ mathrm {punteggio} (x, y) $ - restituisce il numero di punti $ (x, y) $ controlli - numero di punti che $ (x, y) $ è controllato da. Complessità del caso peggiore $ mathcal {o} ( log n) $.
Ho provato a risolverlo usando più alberi AVL, ma non sono riuscito a trovare una soluzione abbastanza elegante.
Questa domanda è apparsa sui miei esami pochi giorni fa. La domanda dovrebbe avere relativamente semplice in quanto valeva $ 15/100 $ punti. Ho provato a risolverlo da diversi alberi AVL ma non sono riuscito a trovare una soluzione abbastanza elegante.
I suggerimenti sono i benvenuti.
Nessuna soluzione corretta