From Olympiads School
Todo: https://dmoj.ca/problem/dmopc19c7p5: cdq (sort one dimension, do cdq on the other). The dimensions are value, insertion order, index
https://dmoj.ca/problem/usaco20janp2: basically vpex point redistribution, either do dp with segment tree, or do cdq on the operations and optimize the dp (IMPORTANT: how to merge the dp if the query overlaps the 2 halves).
https://dmoj.ca/problem/goodg: lichao tree
https://dmoj.ca/problem/dmpg15g3: use centroid decomp, then each node has ~k~ kinako bread and ~c~ croissants, treat this as a point ~(k, c)~. Then the problem becomes given ~N~ points, what is the number of pairs of points that satisify the following equality:
Lk <= x1 + x2 <= Rk Lc <= y1 + y2 <= Rc
This can be solved using line sweep with a vertical line, and using a data structure such as BIT to maintain the other dimension.
https://dmoj.ca/problem/usaco20febg3: standarad dfs
https://dmoj.ca/problem/usaco20febs1: find cycle and pattern
https://dmoj.ca/problem/bbc08f: interval/batch scheduling?
https://dmoj.ca/contest/olylvl4hw200208: do all the problems here
https://dmoj.ca/problem/usaco20jang3: use line sweep
https://dmoj.ca/problem/usaco19decsilvp2: use deque and implementation
https://dmoj.ca/problem/ccc19s4: dp + throw a segtree at it
https://dmoj.ca/problem/lkp18c1p6: rotate then throw a segtree at it
https://dmoj.ca/problem/ccc13s3: more dp
https://dmoj.ca/contest/olylvl4hw191207: do most of these problems (you have done them before)
https://dmoj.ca/contest/olylvl4hw191130: practice this contest when you have time, ds + dp
https://dmoj.ca/problem/dmopc14c3p5: bitmask dp
https://dmoj.ca/contest/olylvl4hw191116: practice this contest
https://dmoj.ca/problem/oly19practice47: interval dp?
https://dmoj.ca/contest/olylvl4hw191019: do this when you have more time + RMT (stupid question)