この記事はIS17er Advent Calendar 2016の12日目の記事です. この記事では,データ列の連続部分列に対するクエリを扱う基本的なデータ構造についての代数的なお話をします. 具体的には, Segment tree Fenwick tree(Binary indexd tree) Sparse table の3つについて扱います. この並びでお気づきの方もいらっしゃるかもしれませんが,自分がプログラミングコンテストチャンレジブックを読み進めながら思ったことを整理して書き下したものとなっています. 記事の半分以上はこの記事の充実のために新規に学んだものが占めており,素人の学習日記のような側面もあり簡潔さに欠けるので,ぜひデータ構造と代数構造 - koba-e964の日記も読まれることをおすすめします. はじめに 扱うトピックの関係上データ構造はわかるが代数には馴染みがないと