# ã¯ã©ã¹ FenwickTree - - - é·ã $N$ ã® longåé åã«å¯¾ã, * è¦ç´ ã®1ç¹å¤æ´ * åºéã®è¦ç´ ã®ç·å ã $O(\log N)$ ã®æéã§æ±ãããã¨ãã§ãããã¼ã¿æ§é ã§ã. ## ã³ã³ã¹ãã©ã¯ã¿ ### FenwickTree ```java public FenwickTree(int n) ``` é·ã $n$ ã®é å $a_0, a_1, \dots, a_{n-1}$ãä½ãã¾ã. åæå¤ã¯ãã¹ã¦0ã§ã. è¨ç®é: $O(n)$ ## ã¡ã½ãã ### add ```java public void add(int p, long x) ``` é åã®ç¬¬$p$è¦ç´ ã«$x$ãå ãã. ããªãã¡, `a[p] += x` ã®ãã¨. è¨ç®é: $O(\log N)$ ### sum ```java public long sum(int l, int r) ``` $a_l + a_{l+1} + \dots + a_{r-1}$ã®å¤ãè¿ã. è¨ç®é: $O(\log n)$ ## 使ç¨ä¾ [[https://atcoder.jp/contests/practice2/submissions/16573339]]