Advertisement
AquaBlitz11

List of topics in Competitive Programming

Oct 14th, 2018
748
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.50 KB | None | 0 0
  1. printf, scanf
  2. - printf scanf %d, %f, %lld, %c %s
  3. - printf %.6f, %02d
  4. - scanf space %c
  5. - %[^\n], gets
  6. - cin, cout
  7.  
  8. variables
  9. - int, long long, range
  10. - type casting
  11. - integer division floor, ceil +mod-1
  12. - operator casting (int/int = int, int*int = int)- const, #define
  13.  
  14. operators
  15. - +-*/%
  16. - +=, -=, *=, /=, %=
  17. - ternary operator ?:
  18. - prefix/postfix ++/--
  19. - modulo operator (negative value)
  20. - modulo add/multiplication
  21.  
  22. bitwise
  23. - &, |, ^, >>, <<, ~
  24. - >>=, <<=
  25.  
  26. if-else
  27. - if, else, else if
  28. - logical operator &&, ||, !
  29. - bool (true != 0, false == 0)
  30. - bool comparison (== xnor, != xor)
  31.  
  32. loop
  33. - while, do-while, for loop
  34. - infinite loop while(1) while(true) for(;;)
  35. - nested loop
  36.  
  37. array
  38. - base 1 index
  39. - n-dimensional array
  40. - cnt++
  41. - counting/boolean array
  42.  
  43. pointer
  44. - pointer to one variable
  45. - pointer to array
  46. - dynamic memory allocation (variable, array)
  47. - array to pointer degeneracy
  48.  
  49. functions
  50. - void function
  51. - return function
  52. - pass by value (copy), pass by address
  53. - pass by reference (c++)
  54. - return via address argument
  55. - return by pointer, malloc
  56. - #define, inline
  57.  
  58. recursive function
  59. - void function
  60. - return function
  61. - print before recur (tail recursion)
  62. - recur before print (head recursion)
  63. - multiple recursion (divide & conquer/brute force)
  64. - induction (recursive mechanism)
  65.  
  66. struct/class
  67. - normal struct
  68. - nested struct
  69. - array in struct
  70. - struct in array
  71. - pointer to struct
  72. - operator overloading (<)
  73. - functions inside struct (class methods)
  74. - comparator class
  75. - constructor
  76. - passing struct into function, returning struct
  77.  
  78. linked list
  79. - push_front, push_back, insert at position, delete at position, delete value, insert sorted
  80. - print, print backward, free list, search (return bool, int, node*)
  81. - doubly, circular, circular doubly, xor linked list (idea only)
  82. - STL list
  83.  
  84. string
  85. - char array, \0
  86. - strlen, strcpy, strncpy, strcat, strncat, etc.
  87. - STL string
  88. - string problem
  89. - palindrome checking
  90. - string searching
  91. - KMP, rabin-karp (hashing)
  92. - suffix tree
  93. - suffix array, lcp array, lcp-lr array
  94. - suffix automaton (aho-corasick)
  95.  
  96. sorting
  97. - select/bubble/insert
  98. - counting sort
  99. - sorting pair/struct
  100. - STL sort
  101. - compare function
  102. - lambda function
  103. - merge sort
  104. - quicksort
  105. - how to pick pivot (random, leftmost, median of three, median of medians)
  106. - partition (2 styles: lomuto, ___)
  107. - quickselect
  108. - radix sort
  109. - decimal system
  110. - bitwise (binary/hexadecimal system)
  111. - heap sort
  112.  
  113. graph
  114. - graph
  115. - definition
  116. - directed, undirected
  117. - weighted, unweighted
  118. - graph representation
  119. - adjacency matrix
  120. - adjacency list
  121. - edge list
  122. - using pair to store edge data with weight
  123. - dfs/bfs on graph
  124. - check cycle
  125. - component counting
  126. - bipartite graph
  127. - shortest path
  128. - shortest path algorithm
  129. - dijkstra's algorithm
  130. - bellman-ford
  131. - floydW
  132. - shortest path faster algorithm
  133. - modelling state graph (implicit graph)
  134. - minimum spanning tree
  135. - min sum, max sum, min max edge, max min edge
  136. - number of MST
  137. - kruskal's/prim's algo
  138. - topological sort
  139. - articulation point/bridge/scc
  140.  
  141. flow algorithm
  142. - max flow algorithm
  143. - edmond karp
  144. - dinic
  145. - push-relabel
  146. - min-cut max-flow theorem
  147. - reducing vertex cover on bipartite graph to max flow
  148. - min-cost max flow algorithm
  149.  
  150. tree
  151. - binary tree
  152. - node type: root, leaf, internal node
  153. - complete binary tree
  154. - LCA
  155. - preorder/postorder/inorder traversal
  156. - expression tree (shunting-yard algorithm)
  157. - heavy light decomposition
  158. - centroid decomposition
  159. - dp
  160. - dsu on tree (sack), merge small to large trick
  161.  
  162. brute force
  163. - iterative (loop)
  164. - recursive pick/unpick, more choices
  165. - recursive backtracking (nqueen, sudoku, permutation)
  166. - simulation problem
  167. - A*, branch and bound (heuristics)
  168. - state search (graph)
  169. - np-complete, fixed parameter
  170.  
  171. divide and conquer
  172. - max sum subarray
  173. - closest pair of point
  174. - skyline
  175. - binary search
  176. - transforming optimization to decision
  177. - binary search bound (l, r, mid+1?)
  178. - std lower_bound, upper_bound
  179. - ternary search
  180. - search for bitonic cutting point
  181. - modular exponentiation
  182. - divide and conquer optimization
  183. - centroid decomposition
  184.  
  185. dynamic programming
  186. - optimal substructure
  187. - overlapping subproblems
  188. - difference between d&c and dp
  189. - dp direction/manner (prefix/suffix)
  190. - top-down/bottom-up
  191. - type of DP (ultimate TOI Guide)
  192. - classic problem
  193. - fibonacci
  194. - max sum subarray
  195. - longest increasing subsequence
  196. - longest common subsequence
  197. - edit distance
  198. - knapsack, subset sum
  199. - substring dp (optimal BST, matrix chain)
  200. - pascal triangle
  201. - largest 1 subsquare in a matrix
  202. - matrix exponentiation
  203. - dp optimization
  204. - convex hull optimization
  205. - divide and conquer optimization
  206. - knuth optimization
  207.  
  208. game theory
  209. - minimax algorithm
  210. - alpha-beta pruning
  211. - grundy number, xor
  212. - nim game
  213.  
  214. greedy algorithm
  215. - sorting criteria
  216. - exchange argument (proof by bubble sort)
  217. - classic problem
  218. - activity selection
  219. - fractional knapsack
  220.  
  221. data structure
  222. - stack, queue, deque
  223. - binary heap (priority queue)
  224. - binary search tree
  225. - balanced BST (avl, rb, treap, splay)
  226. - treap: implicit treap, merge, split
  227. - application: interval tree, k-d tree, etc.
  228. - order-statistics
  229. - STL set, map
  230. - hash table
  231. - segment/fenwick tree
  232. - lazy propagation
  233. - set on segment tree
  234. - dp on segment tree
  235. - union-find disjoint set (dsu)
  236. - persistency
  237. - sqrt decomposition
  238. - time segment tree, persistency trick
  239. - sparse table
  240.  
  241. techniques
  242. - sliding window algorithm
  243. - binary exponentiation
  244. - prefix sum/difference array
  245. - +1 front, -1 back
  246. - line sweep algorithm
  247. - coordinate compression
  248. - sqrt optimization
  249. - mo's algorithm
  250. - parallel binary search
  251. - meet in the middle
  252. - 2SAT
  253.  
  254. complexity analysis
  255. - simple analysis
  256. - master's theorem
  257. - amortized analysis
  258. - aggegrate method
  259. - accounting method
  260. - potential method
  261.  
  262. math techniques
  263. - gcd, lcm, sieve
  264. - (extended) euclidean algorithm
  265. - diophantine equation
  266. - prime number finding/checking (sqrt)
  267. - prime factorization
  268. - time comp. proof using harmonic series (1 + 1/2 + 1/3 + ...)
  269. - modular inverse
  270. - combinatorics (star and bar, inclusion-exclusion, pigeonhole)
  271.  
  272. linear algebra
  273. - rotation matrix
  274. - basis of vectors/cycles (graph)
  275. - gaussian elimination
  276. - matrix multiplication
  277. - fast fourier transform
  278.  
  279. geometry
  280. - convex hull
  281. - farthest pair of point
  282. - line intersection
  283. - point in polygon
  284. - orientation
  285.  
  286. computational theory
  287. - finite automata
  288. - grammar
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement