This commit is contained in:
Benjamin Qi 2020-06-03 23:26:53 -04:00
parent bbb5db50b2
commit 3448e8aa03
7 changed files with 189 additions and 35 deletions

View file

@ -83,8 +83,11 @@ Note that if it were not the case that all elements of the input array were dist
* as far as I know, all gold problems have had only one possible output ...
* [Out of Sorts (harder?)](http://www.usaco.org/index.php?page=viewproblem2&cpid=837)
* Other Problems:
* [USACO Plat Mincross](http://www.usaco.org/index.php?page=viewproblem2&cpid=720)
* [Mega Inversions](https://open.kattis.com/problems/megainversions)
* also just inversion counting
* [Out of Sorts (USACO Silver)](http://usaco.org/index.php?page=viewproblem2&cpid=834)
* aka [Sorting Steps](https://csacademy.com/contest/round-42/task/sorting-steps/) [](42)
* Of course, this doesn't require anything other than sorting but fast range sum queries may make this easier.
* Of course, this doesn't require anything other than sorting but fast range sum queries may make this easier.
* [Twin Permutations](https://www.hackerearth.com/practice/data-structures/advanced-data-structures/fenwick-binary-indexed-trees/practice-problems/algorithm/mancunian-and-twin-permutations-d988930c/description/)
* Offline 2D -> 1D

View file

@ -1,7 +1,7 @@
---
slug: /gold/topological-sort
title: "Gold - Topological Sort"
author: Unknown
author: Benjamin Qi
---
## Gold - Topological Sort
@ -18,4 +18,4 @@ author: Unknown
### USACO Gold Problems
- [Timeline](http://www.usaco.org/index.php?page=viewproblem2&cpid=1017)
- [Milking Order](http://www.usaco.org/index.php?page=viewproblem2&cpid=838)
- [Milking Order](http://www.usaco.org/index.php?page=viewproblem2&cpid=838)

View file

@ -12,32 +12,61 @@ Author: Benjamin Qi
### Range Minimum Query
* Tutorial
* [Wikipedia](https://en.wikipedia.org/wiki/Range_minimum_query)
* (add)
- Tutorial
- [Wikipedia](https://en.wikipedia.org/wiki/Range_minimum_query)
- (add)
### General Static Range Queries
### General Static Range Queries (Online)
* Static range queries in $O(1)$ time and $O(N\log N)$ preprocessing for any associative operation?
* (add)
- Static range queries in $O(1)$ time and $O(N\log N)$ preprocessing for any associative operation
- (add)
### Divide & Conquer
- [DMOJ Continued Fractions](https://dmoj.ca/problem/dmopc19c7p4)
- [USACO Plat NonDec](http://www.usaco.org/index.php?page=viewproblem2&cpid=997)
## Segment Tree
Author: Benjamin Qi
This data structure allows you to do point update and range query in $O(\log N)$ time each for any associative operation.
This data structure allows you to do point update and range query in $O(\log N)$ time each for any associative operation. In particular, note that **lazy** updates allow you to range updates as well.
* Tutorial
* CPH 9.3
* [CSAcademy Tutorial](https://csacademy.com/lesson/segment_trees/)
* [cp-algorithms](https://cp-algorithms.com/data_structures/segment_tree.html)
* [Codeforces Tutorial](http://codeforces.com/blog/entry/18051)
* [Slides from CPC.3](https://github.com/SuprDewd/T-414-AFLV/tree/master/03_data_structures)
- Tutorial
- CPH 9.3
- [Codeforces Tutorial](http://codeforces.com/blog/entry/18051)
- [CSAcademy Tutorial](https://csacademy.com/lesson/segment_trees/)
- [cp-algorithms](https://cp-algorithms.com/data_structures/segment_tree.html)
- [Slides from CPC.3](https://github.com/SuprDewd/T-414-AFLV/tree/master/03_data_structures)
### Practice Problems
* [USACO Springboards](http://www.usaco.org/index.php?page=viewproblem2&cpid=995)
* can use segment tree with min query in place of the map mentioned in analysis
* [POI Cards](https://szkopul.edu.pl/problemset/problem/qpsk3ygf8MU7D_1Es0oc_xd8/site/?key=statement) [](81)
* [Counting Haybales (USACO Plat)](http://www.usaco.org/index.php?page=viewproblem2&cpid=578)
* Lazy Updates
### Problems
- Normal SegTree
- [USACO Old Gold Seating](http://www.usaco.org/index.php?page=viewproblem2&cpid=231) (check ...)
- [USACO Old Gold Optimal Milking](http://www.usaco.org/index.php?page=viewproblem2&cpid=365) (check ...)
- [USACO Old Gold Marathon](http://www.usaco.org/index.php?page=viewproblem2&cpid=495) (check ...)
- [USACO Plat Balancing](http://www.usaco.org/index.php?page=viewproblem2&cpid=624) (check ...)
- [USACO Plat Nocross](http://www.usaco.org/index.php?page=viewproblem2&cpid=721)
- [USACO Gold Springboards](http://www.usaco.org/index.php?page=viewproblem2&cpid=995)
- can use segment tree with min query in place of the map mentioned in analysis
- [POI Cards](https://szkopul.edu.pl/problemset/problem/qpsk3ygf8MU7D_1Es0oc_xd8/site/?key=statement) [](81)
- Lazy Updates
- [USACO Old Gold The Lazy Cow](http://www.usaco.org/index.php?page=viewproblem2&cpid=418) (check ...)
- [USACO Plat Counting Haybales](http://www.usaco.org/index.php?page=viewproblem2&cpid=578)
## 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)
Example problem:
- [DMOJ Range Update Range Query](https://dmoj.ca/problem/acc3p4)
You can extend this to higher dimensions as well (USACO Camp - "Cows Play Global Thermonuclear War").
- [Paper](https://arxiv.org/pdf/1311.6093.pdf)

View file

@ -1,7 +1,40 @@
---
slug: /plat/2DRQ
title: "Platinum - 2D Range Queries"
author: ?
author: Benjamin Qi
---
# Platinum - 2D Range Queries
# Platinum - 2D Range Queries
See [my implementations](https://github.com/bqi343/USACO/tree/master/Implementations/content/data-structures/2D%20Range%20Queries%20(15.2)).
## Static Array Queries
- [Multi-Dimensional RMQ (retrograd)](https://codeforces.com/blog/entry/53810)
- GP of Serbia 2020 B
## 2D BIT
### Tutorials
- [GFG 2D BIT](https://www.geeksforgeeks.org/two-dimensional-binary-indexed-tree-or-fenwick-tree/)
- [TopCoder BIT](https://www.topcoder.com/community/competitive-programming/tutorials/binary-indexed-trees/)
### Problems
- [CSES Forest Queries II](https://cses.fi/problemset/task/1739)
- [DMOJ Soriya's Programming Project](https://dmoj.ca/problem/dmopc19c7p5)
- compressed 2D BIT
- or do divide & conquer with a 1D BIT
- [IOI 2007 Pairs](https://wcipeg.com/problem/ioi0722)
- [DMOJ Crowded Cities](https://dmoj.ca/problem/bfs17p6)
## 2D Segment Tree
- Short Description
- CSES 28.2, 28.4
- Problems
- [USACO Plat Friendcross](http://www.usaco.org/index.php?page=viewproblem2&cpid=722)
- [USACO Plat Mowing](http://www.usaco.org/index.php?page=viewproblem2&cpid=601)
- [POI Tetris 3D](https://szkopul.edu.pl/problemset/problem/OQjANSOOD_-c38gh8p6g3Gxp/site/?key=statement)
- [IOI 2013 Game](http://wcipeg.com/problem/ioi1323)

View file

@ -1,10 +1,50 @@
---
slug: /plat/geo
title: "Platinum - Geometry"
author: ?
author: Benjamin Qi
---
- Cross product, dot product, geometry primitives (shoelace, etc.)
- Sweepline
- CPH 29, 30.1?
- Convex Hull
# Platinum - Geometry
## Primitives
You should know basic operations like cross product and dot product. For platinum specifically, you should be fine as long as you know how to code convex hull.
### Tutorial
- CPH 29, 30.1
- [TopCoder](https://www.topcoder.com/community/competitive-programming/tutorials/geometry-concepts-basic-concepts/)
- [CF - Point Class](https://codeforces.com/blog/entry/48122)
- [C++ - std::complex](https://codeforces.com/blog/entry/22175)
- [cp-algo - "Elementary Operations"](https://cp-algorithms.com/)
- [vlecomte - geo book](https://codeforces.com/blog/entry/59129)
- [My Templates](https://github.com/bqi343/USACO/tree/master/Implementations/content/geometry%20(13)/Primitives)
## Sweep Line
- [TopCoder Line Sweep](https://www.topcoder.com/community/competitive-programming/tutorials/line-sweep-algorithms/)
- [Cow Steepchase II (Silver)](http://www.usaco.org/index.php?page=viewproblem2&cpid=943)
- :|
## Convex Hull
- [Kattis Convex Hull](https://open.kattis.com/problems/convexhull)
### Tutorial
- Graham Scan
- [cp-algo](https://cp-algorithms.com/geometry/grahams-scan-convex-hull.html)
- [My Implementation](https://github.com/bqi343/USACO/blob/master/Implementations/content/geometry%20(13)/Polygons/ConvexHull2.h)
- Monotone Chain
- CPH 30.3 (brief)
- [Wikipedia](https://en.wikibooks.org/wiki/Algorithm_Implementation/Geometry/Convex_hull/Monotone_chain)
- [My Implementation](https://github.com/bqi343/USACO/blob/master/Implementations/content/geometry%20(13)/Polygons/ConvexHull%20(13.2).h)
### Problems
- [USACO Plat Balance](http://www.usaco.org/index.php?page=viewproblem2&cpid=864)
- [USACO Plat Falling](http://www.usaco.org/index.php?page=viewproblem2&cpid=998)
- [USACO Old Gold - Fencing](http://www.usaco.org/index.php?page=viewproblem2&cpid=534)
- [USACO Old Gold - Cow Curling](http://www.usaco.org/index.php?page=viewproblem2&cpid=382)
- [AGC 44 Random Pawn](https://atcoder.jp/contests/agc044/tasks/agc044_e)
- Generalization of "Balance"

View file

@ -0,0 +1,13 @@
---
slug: /plat/trees
title: "Platinum - Graphs"
author: ?
---
SCC
[USACO Old Gold Grass](http://www.usaco.org/index.php?page=viewproblem2&cpid=516)
BCC
[USACO Plat Push a Box](http://www.usaco.org/index.php?page=viewproblem2&cpid=769)

View file

@ -1,13 +1,49 @@
---
slug: /plat/trees
title: "Platinum - Trees"
author: ?
author: Benjamin Qi
---
# Platinum - Trees
- CPH 14, 18?
- hasnt been *required* aside from
- *probably* won't see a repeat of this
- [Milk Visits](http://www.usaco.org/index.php?page=viewproblem2&cpid=970) also mentions it
- but no binary jumping required ...
## Tree Diameter
### Tutorial
- CPH 14.2
### Problems
- [USACO Plat Newbarns](http://www.usaco.org/index.php?page=viewproblem2&cpid=817)
- Copy of [Brain Network "Hard"](https://codeforces.com/contest/690/problem/C3)
## Lowest Common Ancestor
### Tutorial
- CPH 18
- [cp-algorithms: Lowest Common Ancestor](https://cp-algorithms.com/)
### Problems
- [USACO Plat Max Flow](http://www.usaco.org/index.php?page=viewproblem2&cpid=576)
- [USACO Gold Milk Visits](http://www.usaco.org/index.php?page=viewproblem2&cpid=970)
- [USACO Gold Cow Land](http://www.usaco.org/index.php?page=viewproblem2&cpid=921)
- LCA + BIT
- [USACO Plat Promote](http://www.usaco.org/index.php?page=viewproblem2&cpid=696)
- Subtree + BIT
- [USACO Plat Disrupt](http://www.usaco.org/index.php?page=viewproblem2&cpid=842)
- HLD is possible, but just do binary jumps
- [USACO Plat Tree Boxes](http://www.usaco.org/index.php?page=viewproblem2&cpid=948)
- interactive!!
- [USACO Plat Gathering](http://www.usaco.org/index.php?page=viewproblem2&cpid=866)
- [USACO Plat Exercise](http://www.usaco.org/index.php?page=viewproblem2&cpid=901)
- tricky
## Centroid Decomposition
- [USACO Plat - At Large](http://www.usaco.org/index.php?page=viewproblem2&cpid=793)
- very tricky
- [DMOJ Bob Equilibrium](https://dmoj.ca/problem/dmopc19c7p6)
## Heavy-Light Decomposition