Category:Tutorials: Difference between revisions

From programming_contest
Jump to navigation Jump to search
imported>Kmk21
No edit summary
imported>Kmk21
No edit summary
 
Line 1: Line 1:
=Essential Algorithms=
=Essential Algorithms=
These algorithms are ones that you are expected to know in the advanced class. Most problems will draw from the algorithms in this list.
These algorithms are ones that you are expected to know in the advanced class. Most problems will draw from the algorithms in this list.
*[[dijkstra]]
*[[Dijkstra]]
*[[bfs]]
*[[BFS]]
*[[dfs]]
*[[DFS]]
*[[floyd warshall]]
*[[Floyd Warshall]]
*[[mst]]
*[[Minimum Spanning Tree]]
*[[greedy]]
*[[Greedy]]
*[[DP]]
*[[DP]]
**[[dimension swapping]]
**[[Dimension Swapping]]
**[[dimension elimination]]
**[[Dimension Elimination]]
**[[row elimination]]
**[[Row Elimination]]
**[[minimax]]
**[[MiniMax]]
**[[using greedy or binary search in the relation]]
**using greedy or binary search in the relation
*[[Augmenting Path Algorithms]]
*[[Augmenting Path Algorithms]]
**[[maxflow]]
**[[Max Flow]]
***[[min-cut]]
***[[Min Cut]]
***[[innodes/outnodes]]
***[[In-Out Nodes]]
**[[bipartite matching]]
**[[Bipartite Matching]]
*[[convex hull]]
*[[Convex Hull]]
*[[segment tree]]
*[[Segment Tree]]
*[[scc]]
*[[Strongly Connected Components]]
*[[bcc]]
*[[Bi Connected Components]]
*[[bipartite graph]]
*[[Bipartite Graph]]
**[[vertex cover]]
**[[Vertex Cover]]
**[[max flow]]
**[[Max Flow]]
*[[binary search]]
*[[Binary Search]]
*[[knp]]
*[[KNP]]
*[[bezout's identity]]
*[[Bezout's Identity]]
*[[the "mobile" identity]]
*[[Mobile Identity]]
**weight*2^level is equal for all nodes
**weight*2^level is equal for all nodes
**can adjust for weighted bars
**can adjust for weighted bars
**can still normalize with unequal bars, just recursively
**can still normalize with unequal bars, just recursively
*[[catalan #s]]
*[[Catalan Numbers]]
*[[linear programming]]
*[[Linear Programming]]
*[[hungarian algorithm]]
*[[Hungarian Algorithm]]
*[[topological sort]]
*[[Topological Sort]]
*[["fixing a variable"]]
*[[Fixing a Variable]]
**if you don't know how to find which situation is optimal, iterate through all of them and pick the best one. works when solving the rest of the problem given the fixed variable is easy.
**if you don't know how to find which situation is optimal, iterate through all of them and pick the best one. works when solving the rest of the problem given the fixed variable is easy.
*[[divide and conquer]]
*[[Divide and Conquer]]
*[[fenwick trees]]
*[[Fenwick Trees]]
*[["interesting points"]]
*[[Interesting Points]]
**don't look at all the points, only look at ones where you know something will change
**don't look at all the points, only look at ones where you know something will change
*[[scan lines]]
*[[Scan Line]]
*[[dimension explosion]]
*[[Dimension Explosion]]
**you add some other dimension to your state, such as how many of a given resource, or whether you've reached some checkpoint. works with DP, dijkstra, maxflow...all sorts of things
**you add some other dimension to your state, such as how many of a given resource, or whether you've reached some checkpoint. works with DP, dijkstra, maxflow...all sorts of things
*[["select an element"]]
*[[Select an Element]]
**have to find the n'th element of a set, but can't compute all...so figure out which smaller subset it fits in, do this until you find the element
**have to find the n'th element of a set, but can't compute all...so figure out which smaller subset it fits in, do this until you find the element
*[[FFT]]
*[[Fast Fourier Transform]]
**[[Convolutions]]
**[[Convolutions]]

Latest revision as of 16:55, 13 January 2016

Essential Algorithms

These algorithms are ones that you are expected to know in the advanced class. Most problems will draw from the algorithms in this list.