skill set for competitive programming

7
Your Skill Set as of Today (Week 01/02) Your Response Never heard of it before Heard of it but do not know the details Know it, but have not code/use it Can code/use it, but not very confident to do it fast Can code/use it very fast and confident Task: Give a score in Column B for each Keywords below, see the scor Data Structures, Algorithms, & Programming Keywords Sequence, Selection, Repetition Programming Constructs Recursion/Backtracking Ad Hoc Problem C++ STL (Standard Template Library) Java API (Application Programming Interface) Array/C++ STL vector/Java Vector Basic Bitmask Techniques LinkedList/C++ STL list/Java LinkedList Stack/Queue/Deque/C++ STL stack/queue/deque/Java Stack/Queue/Deque Binary Search Tree/C++ STL map/set/Java TreeMap/TreeSet Balanced Binary Search Tree/AVL/Red-Black-Tree (with your own librar Hash Table/Java HashMap (C++11 unordered_map) Heap/PriorityQueue/C++ STL priority_queue/Java PriorityQueue Graph/AdjacencyMatrix/AdjacencyList/EdgeList Union-Find Disjoint Sets Segment Tree Binary Indexed (Fenwick) Tree Bubble Sort Insertion Sort Selection Sort Merge Sort Quick Sort Heap Sort Multi-Field Sorting Counting Sort Inversion Index (with Merge Sort) Complete Search/Brute Force/Iterative/Recursive Backtracking State-Space Search Meet in the Middle (Bidirectional Search) A* Search (standard one) Iterative-Deepening Technique (esp IDA*) Divide and Conquer Principles Binary Search Techniques Greedy Basic Ideas of Dynamic Programming I can solve n-Queens problem up to n ≤ 14

Upload: pulkit-aggarwal

Post on 28-Dec-2015

70 views

Category:

Documents


3 download

DESCRIPTION

Check

TRANSCRIPT

Page 1: Skill Set for Competitive Programming

Your Skill Set as of Today (Week 01/02)

Your Response ScoreNever heard of it before 1Heard of it but do not know the details 2Know it, but have not code/use it 3Can code/use it, but not very confident to do it fast 4Can code/use it very fast and confident 5

Task: Give a score in Column B for each Keywords below, see the scoring table above, the graph on the right side will be gradually updated

Data Structures, Algorithms, & Programming Keywords My Subjective ScoreSequence, Selection, Repetition Programming ConstructsRecursion/BacktrackingAd Hoc ProblemC++ STL (Standard Template Library)Java API (Application Programming Interface)Array/C++ STL vector/Java VectorBasic Bitmask TechniquesLinkedList/C++ STL list/Java LinkedList 5Stack/Queue/Deque/C++ STL stack/queue/deque/Java Stack/Queue/Deque 5Binary Search Tree/C++ STL map/set/Java TreeMap/TreeSet 5Balanced Binary Search Tree/AVL/Red-Black-Tree (with your own library) 4Hash Table/Java HashMap (C++11 unordered_map) 4Heap/PriorityQueue/C++ STL priority_queue/Java PriorityQueueGraph/AdjacencyMatrix/AdjacencyList/EdgeListUnion-Find Disjoint SetsSegment TreeBinary Indexed (Fenwick) TreeBubble Sort 5Insertion Sort 5Selection Sort 5Merge Sort 5Quick Sort 5Heap Sort 5Multi-Field SortingCounting SortInversion Index (with Merge Sort) 5Complete Search/Brute Force/Iterative/Recursive Backtracking

State-Space SearchMeet in the Middle (Bidirectional Search)A* Search (standard one)Iterative-Deepening Technique (esp IDA*)Divide and Conquer PrinciplesBinary Search TechniquesGreedyBasic Ideas of Dynamic Programming

I can solve n-Queens problem up to n ≤ 14

1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97100

103106

109112

115118

121124

0

1

2

3

4

5

6

My Skill

Page 2: Skill Set for Competitive Programming

Max Sum 1D/2D/etcKadane's Algorithm for 1D/2D/etc Max SumLongest Increasing Subsequence (LIS)O(n log k) solution for LISCoin Change (CC)0-1 Knapsack/Subset SumTraveling Salesman Problem (TSP)DP and its relationship with DAGDP "on Tree"Longest Common Subsequence (LCS)String Alignment/Edit DistanceDP Optimization TechniquesBitonic TSPMatrix Chain Multiplication (MCM)Optimal Binary Search Tree (OBST)Depth First Search (Traversal)Topological SortFinding Connected Components/Flood FillFinding Articulation Points/Bridges in O(V+E)Finding Strongly Connected Components (SCC) in Directed Graph in O(V+E)Breadth First Search (Traversal)Kruskal's (Minimum Spanning Tree)Prim's (Minimum Spanning Tree)Dijkstra's (Single-Source Shortest Paths)Bellman Ford's (Single-Source Shortest Paths)Floyd Warshall's (All-Pairs Shortest Paths)Ford Fulkerson's/Edmonds Karp's (Max Flow, Min Cut)Independent and Edge-Disjoint PathsMin Cost (Max) FlowShortest/Longest/All Pairs Paths in TreeLowest Common Ancestor (LCA)Eulerian Graph/Path/CycleChinese Postman ProblemDirected Acyclic Graph (DAG)Shortest/Longest Path in DAGCounting Paths in DAGMin Path Cover in DAGBipartite GraphMax Cardinality Bipartite Matching (MCBM)Min Vertex Cover in Bipartite Graph (Konig Theorem)Max Independent Set/Dominating Set in Bipartite GraphAugmenting Path Algorithm for finding MCBMHopcroft Karp's Algorithm for finding MCBMKuhn Munkres/Hungarian Algorithm for finding weighted MCBMEdmond's Matching Algorithm (Blossom Shrinking) for General MatchingSequences and Number SystemsPolynomialBig Integer

Page 3: Skill Set for Competitive Programming

Base NumberCombinatoricsFactorial/FibonacciNumber TheoryPrime Number Generation: SievePrime TestingMiller Rabin's AlgorithmPrime Factoring by Trial DivisionPollard Rho's AlgorithmModified SieveGCD/LCM/Euclid's AlgorithmExtended Euclid/Linear Diophantine EquationEuler PhiModulo ArithmeticFibonacci/FactorialDivisibilityCycle Finding/Tortoise-Hare AlgorithmDivide and Conquer Quick ExponentiationMatris PowerLinear Algebra/Gaussian EliminationBackus Naur Form (BNF) GrammarKnuth Morris Pratt (KMP) String Matching algorithmAho CorasickSuffix Trie ApplicationsSuffix Tree ApplicationsSuffix Array Construction O(n log n) and ApplicationsGeometry Basics, e.g. area, perimeter, Euclidean distance, TrigonometryLine Segment IntersectionCCW TestIncircle TestArea and Perimeter of Arbitrary PolygonTesting if a Polygon is ConvexTesting if a Point is Inside a PolygonCutting a (Convex) Polygon with a Straight LineGraham Scan (Convex Hull)Plane Sweep ParadigmArea or Volume IntersectionTriangulationClosest Pair ProblemOrder Statistics: Linear Time Selection AlgorithmClassic Board games, Card games, Chess, popular AI gamesFedora (Linux) OS environment

Page 4: Skill Set for Competitive Programming

Task: Give a score in Column B for each Keywords below, see the scoring table above, the graph on the right side will be gradually updated

1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97100

103106

109112

115118

121124

0

1

2

3

4

5

6

My Skill

Page 5: Skill Set for Competitive Programming

1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 67 70 73 76 79 82 85 88 91 94 97100

103106

109112

115118

121124

0

1

2

3

4

5

6

My Skill