Kann jemand Ideen für das folgende Problem geben?
Gegeben sei ein Array ar[]
der Länge n
und einige Abfragen. Jede Abfrage hat die Form a, b, c
, finde die Zahl mit dem kleinsten Index i
, so dass der Index im Bereich [c, n]
liegt und so dass a < ar[i] < b
. Insgesamt gibt es (n - 1)
, c
geht von 1
bis n - 1
. Die erwartete Komplexität für jede Abfrage sollte ungefähr O(log n)
betragen, und eine Vorverarbeitung mit einer maximalen Komplexität von höchstens O(n log n)
ist angemessen. Intuitiv kam mir ein Segmentbaum in den Sinn, aber ich konnte mir keine Möglichkeit vorstellen, ihn zu erstellen, noch was in jedem Knoten gespeichert werden sollte.