y) = H(x) combine H(y) • ཁೋͷ߹ ŋŋŋ෦จࣈྻͷϋογϡ – ͜ͷϋογϡΛʮ෦จࣈྻҰகఆʯͱҙຯղऍͰ͖Δ – ཁͰൺֱ͢Δ͔Βɺܭࢉྔ͕Լ͕Δ O(1) a b r a c a d s = a combine, e H0 H1 H2 H3 H4 H5 H6 H7 H8
xs x = rangeFoldPT (l, r) s ྦྷੵ 1SFGJY5BCMF let rh = fromStringRH (1, n) s h = rangeFoldRH (l, r) rh ϩʔϦϯάϋογϡ seg <- newListSeg @VUM.MVector (1, n) $ map Min xs x <- rangeFoldSeg seg (l, r) ηάϝϯτ
xs x = rangeFoldSP (l, r) s 4QBSTF5BCMF gen <- newStdGen let t = newTableZHMS gen xs z = fromListZHMS (1, n) t xs x = rangeFoldZHMS (l, r) z ;PCSJTU)BTI SBOHF'PMEʮ۠ؒΛɺͦͷͷҙຯͰཁ͢ΔʯΠϯλʔϑΣʔε
ධՁث͝ͱʹඞཁͳ๏ଇ͕ҟͳΔ ۠ؒ <M S Ͳͷҙຯ GPME͢Δ͔ NBY NJO ʜ ཁ N ධՁث1SFGJY5BCMF#*54FHNFOU5SFF4QBSTF5BCMF3PMMJOH)BTIʜ B ཁͷจ຺ C ධՁͷํ๏ ࣸ૾ͱ߹ԋࢉ͕ɺཁͷҙຯΛܾΊΔɻ߹ԋࢉ͕ຬͨ͢๏ଇ͕ɺͦͷཁΛѻ͑ΔධՁثΛܾΊΔ ҙຯͱධՁΛ͢ΔɻҙຯΛܾΊΔͷ͕ѹॖɺܭࢉํ๏ΛܾΊΔͷ͕ධՁث