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/Syllabus.md
2020-06-01 21:15:41 -07:00

3.8 KiB
Raw Blame History

Stuff

https://github.com/bqi343/USACO/blob/master/Contests/USACO%20Links/USACO%20Topics.md

https://www.vplanetcoding.com/courses

https://people.ksp.sk/~misof/ioi-syllabus/ioi-syllabus.pdf

https://www.overleaf.com/project/5e73f65cde1d010001224d8a

https://github.com/bqi343/USACO/blob/master/Contests/USACO%20Links/Division-Specific/Silver.md

Italics = mostly appears in higher divisions but still good to learn

Bronze

  • Assumed Prerequisites
    • for loops, ifs, etc…
    • first half of AP Computer Science A
  • What is competitive programming?
    • how to practice, debug
    • good practices for contests
    • contest format
  • Introduction to contests
    • format
    • plenty of examples involving files I/O
    • submitting, verdicts
  • VERY easy problems
    • ex. Fence Painting
    • At this level... be explicit about how to implement things (say "arrays" or "for-loops" probably)
  • Brute force
  • Greedy
  • Bitwise operations?
  • Iterating through subsets and permutations
    • next_permutation/Generating permutations recursively (for Java/python)
  • STL / java.util. (know that they exist)
    • Vector / ArrayList
    • std::sort / Collections.sort
    • std::map / TreeMap/HashMap

Silver

  • Sorting
    • ex. Coord Compress
  • Binary Search (BinSearch)
  • Two Pointers (2P)
  • Prefix Sums (Psum)
    • aka Cumulative, Partial
    • 2D
  • Containers from C++ standard template library (STL)
    • (also know pairs in C++)
    • PQ = priority queue
    • Data Structures and their Methods(STL)
    • BST/TreeSet / TreeMap (Python doesnt have ordered map)
    • Linked List
    • Priority Queues
    • Stacks
    • Deques
    • Sets/Maps
    • HashSets/HashMaps
    • Multiset (F FOR JAVA) (just teach a workaround or smthn ig) TreeMap<value,numoccrances> (erase by value pitfall**)
    • Custom comparator (prerequisite for basically all silver topics in Java)
  • Graphs
    • Terminology
      • ex. Bipartite graphs
    • FF: Flood Fill (finding the number of connected components in a graph)
      • frequently on grid
      • Depth First Search (DFS)
    • Breadth First Search (BFS)
    • Disjoint Set Union (DSU)
  • Permutations / Cycle Detection??

Gold

  • Dynamic Programming (DP)
    • Tree
    • Bitmasks
    • Knapsack
    • Range DP??
  • Graphs
    • Shortest Path (SP)
      • Dijkstra
      • Bellman-Ford (SPFA?)
      • Floyd-Warshall (Separate or together?)
    • Minimum Spanning Tree (MST)
      • Prim
      • Kruskal
    • Topological Sort (TopoSort)
    • Lowest Common Ancestor (LCA)
      • hasnt been required aside from cowland
      • well, milk visits mentions it (but no binary jumping required…)
  • 1D Range Queries (1DRQ)
    • Mostly sum queries
    • Fenwick / Binary Indexed Tree (BIT)
    • Segment Tree
  • Math
    • Combinatorics
      • Principle of Inclusion and Exclusion (PIE)
    • Number Theory
      • Modular Arithmetic
      • Fast Exponentiation (Cow Poetry)
  • Geometry
    • Cross product, dot product, geometry primitives (shoelace, etc.)
    • Sweepline
  • Bitset??

Written with StackEdit.