首页 > 代码库 > 算法笔记--关于求前缀和前的O(1)询问更新

算法笔记--关于求前缀和前的O(1)询问更新

所有元素初始值为0才能这么做。

①l--r全加1

a[l]++;

a[r]--;

求一遍前缀和为元素本身。

求两遍前缀和为元素前缀和。

例题:http://codeforces.com/problemset/problem/816/B

②l--r从1加到l-r+1

a[l]++;

a[r+1]-=l-r+2;

a[r+2]+=l-r+1;

求两遍前缀和为元素本身。

求三遍前缀和为元素前缀和。

因为更新时复杂度是o(1)所以复杂度为求前缀和时的o(N)。

例题:http://arc077.contest.atcoder.jp/tasks/arc077_c

算法笔记--关于求前缀和前的O(1)询问更新