This repository has been archived on 2022-06-22. You can view files and clone it, but cannot push or open issues or pull requests.
usaco-guide/content/6_Plat/RURQ.mdx
2020-06-25 00:00:28 -04:00

58 lines
2 KiB
Text

---
id: RURQ
title: "Range Update Range Query"
author: Benjamin Qi
prerequisites:
- Gold - Point Update Range Query
description: Lazy updates on segment trees and two binary indexed trees in conjunction.
---
import { Problem } from "../models";
export const metadata = {
problems: {
bitRevisited: [
new Problem("CSES", "Polynomial Queries", "1736", "Normal", false, ["BIT-Range"], "equivalent to https://dmoj.ca/problem/acc3p4"),
],
lazySegTree: [
new Problem("CSES", "Range Updates & Sums", "1735", "Easy", false, ["Lazy SegTree"], ""),
new Problem("YS", "Range Affine Range Sum", "range_affine_range_sum", "Easy", false, ["Lazy SegTree"], ""),
new Problem("Plat", "Counting Haybales", "578", "Easy", false, ["Lazy SegTree"], ""),
new Problem("CSES", "Old Gold - The Lazy Cow", "418", "Easy", false, ["Lazy SegTree"], ""),
new Problem("CSES", "Area of Rectangles", "1741", "Hard", false, ["Lazy SegTree"], "use segment tree that keeps track of minimum and # of minimums"),
],
segTreeBeats: [
new Problem("YS", "Range Chmin Chmax Add Range Sum", "range_chmin_chmax_add_range_sum", "Hard", false, ["SegTreeBeats"], ""),
],
}
};
## BIT Revisited
Binary Indexed Trees can support range increments in addition to range sum queries.
- [GFG Range Update Point Query](https://www.geeksforgeeks.org/binary-indexed-tree-range-updates-point-queries/)
- [GFG Range Update Range Query](https://www.geeksforgeeks.org/binary-indexed-tree-range-update-range-queries/)
- [My Implementation](https://github.com/bqi343/USACO/blob/master/Implementations/content/data-structures/1D%20Range%20Queries%20(9.2)/BITrange.h)
(problem that's only increment with no sets?)
<problems-list problems={metadata.problems.bitRevisited} />
## Lazy Segment Tree
### Tutorial
- CPH 28.1 (Segment Trees Revisited)
<problems-list problems={metadata.problems.lazySegTree} />
## Segment Tree Beats
### Tutorial
- [CF - jiry2](https://codeforces.com/blog/entry/57319)
<problems-list problems={metadata.problems.segTreeBeats} />
(300iq problem)