main.tex 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. %!TEX TS-program = xelatex
  2. %!TEX encoding = UTF-8 Unicode
  3. % TODO
  4. % factoriser les
  5. % typedef vector<int> VI;
  6. % typedef vector<VI> VVI;
  7. % typedef long long L;
  8. % typedef vector<L> VL;
  9. % typedef vector<VL> VVL;
  10. % typedef pair<int, int> PII;
  11. % typedef vector<PII> VPII;
  12. % enlever les #include, using namespace std
  13. \documentclass[8pt]{extarticle}
  14. \usepackage[a4paper]{geometry}
  15. \usepackage[french]{babel}
  16. \usepackage{amssymb,amsthm,amsmath}
  17. \usepackage{xltxtra}
  18. \usepackage{stmaryrd}
  19. \usepackage{graphicx}
  20. \usepackage{listings}
  21. \usepackage{color}
  22. \lstset{
  23. extendedchars=true,
  24. showstringspaces=false,
  25. escapeinside=``,
  26. keywordstyle=\color{blue},
  27. commentstyle=\color[rgb]{0.133,0.545,0.133},
  28. columns=flexible,
  29. language=C++,
  30. tabsize=2,
  31. basicstyle=\normalsize\selectfont\ttfamily,
  32. numbers=left,
  33. frame=lines,
  34. breaklines=true
  35. }
  36. \geometry{
  37. left=15mm,
  38. right=7mm,
  39. top=7mm,
  40. bottom=15mm
  41. }
  42. \usepackage{multicol}
  43. \setlength{\columnsep}{1cm}
  44. \title{ACM Notebook}
  45. \author{4chan: Thomas Espitau -- Shendan Jin -- Olivier Marty}
  46. \date\today
  47. \begin{document}
  48. \maketitle
  49. \tableofcontents
  50. \begin{multicols}{2}
  51. %\chapter{ACM Cookbook}
  52. \section{Algorithmique du texte}
  53. \subsection{Tableaux de suffixes}
  54. Temps de cuisson : $O(n \log^2 n)$
  55. {\scriptsize\lstinputlisting{code/suffix.cpp}} % TODO
  56. \subsection{Knuth-Morris-Pratt}
  57. Temps de cuisson : $O(n)$
  58. {\scriptsize\lstinputlisting{code/kmp.cpp}} % OK
  59. \subsection{Rabin-Karp 2D}
  60. {\scriptsize\lstinputlisting{code/RabinKarp.cpp}} % OK
  61. \subsection{AC Automaton}
  62. {\scriptsize\lstinputlisting{code/ACAutomaton.cpp}} % OK
  63. \section{Optimisation}
  64. \subsection{Sparse max-flow}
  65. {\scriptsize\lstinputlisting{code/Dinic.cc}} % OK % à supprimer ?
  66. \subsection{Min-cost max-flow}
  67. {\scriptsize\lstinputlisting{code/MinCostMaxFlow.cc}} % OK
  68. \subsection{Push-relabel max-flow}
  69. {\scriptsize\lstinputlisting{code/PushRelabel.cc}} % OK
  70. \subsection{Min-cost matching}
  71. {\scriptsize\lstinputlisting{code/MinCostMatching.cc}} % OK
  72. \subsection{Max bipartite matching $O(EV)$}
  73. {\scriptsize\lstinputlisting{code/MaxBipartiteMatching.cc}}
  74. \subsection{Max bipartite matching $O(E\sqrt V)$}
  75. {\scriptsize\lstinputlisting{code/MaxBipartiteMatching_sqrt.cc}} % OK
  76. \subsection{Stable matchings}
  77. {\scriptsize\lstinputlisting{code/StableMatchings.cpp}}
  78. \subsection{Global min cut}
  79. {\scriptsize\lstinputlisting{code/MinCut.cc}}
  80. \section{Géométrie}
  81. \subsection{Convex hull}
  82. {\scriptsize\lstinputlisting{code/ConvexHull.cc}} % OK
  83. \subsection{Miscellaneous geometry}
  84. {\scriptsize\lstinputlisting{code/Geometry.cc}}
  85. % OK RotateCCW
  86. % OK ComputeSignedArea
  87. \subsection{Closest Pair}
  88. {\scriptsize\lstinputlisting{code/ClosestPair.cpp}}
  89. \subsection{Slow Delaunay triangulation}
  90. {\scriptsize\lstinputlisting{code/Delaunay.cpp}} % TODO chercher algo en N (incremental flip)
  91. \section{Algorithmes numériques}
  92. \subsection{Number theoretic algorithms (modular, Chinese remainder, linear Diophantine)}
  93. {\scriptsize\lstinputlisting{code/Euclid.cpp}}
  94. \subsection{Discrete Logarithm $O(\sqrt n\log n)$}
  95. {\scriptsize\lstinputlisting{code/DiscreteLog.cpp}}
  96. \subsection{Euler's function}
  97. {\scriptsize\lstinputlisting{code/Euler.cpp}}
  98. \subsection{Systems of linear equations, matrix inverse, determinant}
  99. {\scriptsize\lstinputlisting{code/GaussJordan.cc}}
  100. \subsection{Reduced row echelon form, matrix rank}
  101. {\scriptsize\lstinputlisting{code/ReducedRowEchelonForm.cc}}
  102. \subsection{Fast Fourier transform}
  103. {\scriptsize\lstinputlisting{code/FFT.cpp}} % OK
  104. \subsection{Simplex algorithm}
  105. {\scriptsize\lstinputlisting{code/Simplex.cc}} % OK
  106. \section{Graphes}
  107. \subsection{Fast Dijkstra's algorithm}
  108. {\scriptsize\lstinputlisting{code/FastDijkstra.cc}}
  109. \subsection{Strongly connected components}
  110. {\scriptsize\lstinputlisting{code/SCC.cc}}
  111. \subsection{DFS/BFS}
  112. {\scriptsize\lstinputlisting{code/BFS_DFS.cpp}} % OK
  113. \subsection{Bellman-Ford}
  114. {\scriptsize\lstinputlisting{code/BellmanFord.cpp}} % OK
  115. \subsection{Topological Sort}
  116. {\scriptsize\lstinputlisting{code/TopologicalSort.cpp}}
  117. \section{Structures de données}
  118. \subsection{Suffix arrays}
  119. {\scriptsize\lstinputlisting{code/SuffixArray.cpp}}
  120. \subsection{Binary Indexed Tree}
  121. {\scriptsize\lstinputlisting{code/BIT.cc}}
  122. \subsection{Union-Find Set}
  123. {\scriptsize\lstinputlisting{code/UnionFind.cc}}
  124. \subsection{KD-tree}
  125. {\scriptsize\lstinputlisting{code/KDTree.cc}}
  126. \subsection{Segment Tree}
  127. {\scriptsize\lstinputlisting{code/SegmentTree.cpp}} % OK
  128. \subsection{Treap}
  129. {\scriptsize\lstinputlisting{code/Treap.cpp}} % OK
  130. \subsection{Bits Sets}
  131. {\scriptsize\lstinputlisting{code/BitSet.cpp}} % OK
  132. \section{Divers}
  133. \subsection{Longest increasing subsequence}
  134. {\scriptsize\lstinputlisting{code/LongestIncreasingSubsequence.cpp}}
  135. \subsection{Maximum rectangle under an histogram / in a matrix}
  136. {\scriptsize\lstinputlisting{code/BiggestRectangle.cpp}}
  137. \subsection{Number of inversions}
  138. {\scriptsize\lstinputlisting{code/Inversion.cpp}} % OK
  139. \subsection{Dichotomie}
  140. {\scriptsize\lstinputlisting{code/Dichotomie.cpp}} % regarder
  141. \subsection{Dates}
  142. {\scriptsize\lstinputlisting{code/Dates.cpp}}
  143. \subsection{Prime numbers}
  144. {\scriptsize\lstinputlisting{code/Primes.cc}}
  145. \subsection{Tips}
  146. {\scriptsize\lstinputlisting{code/Tips.cpp}}
  147. \subsection{Skeleton}
  148. {\scriptsize\lstinputlisting{code/Skeleton.cpp}}
  149. \section{Oppa Shendan Style}
  150. \subsection{Eulerian Circuit}
  151. {\scriptsize\lstinputlisting{code/EulerCircuit.cpp}}
  152. \subsection{Test Bipartite Graph}
  153. {\scriptsize\lstinputlisting{code/BipartiteTest.cpp}}
  154. \subsection{Cut vertex / Bridge}
  155. {\scriptsize\lstinputlisting{code/CutVertexBridge.cpp}}
  156. \subsection{Biconnected component}
  157. {\scriptsize\lstinputlisting{code/BCC.cpp}}
  158. \subsection{2 SAT}
  159. {\scriptsize\lstinputlisting{code/2SAT.cpp}}
  160. \subsection{Binomial coefficient}
  161. {\scriptsize\lstinputlisting{code/Binom.cpp}}
  162. \subsection{Exact Cover}
  163. {\scriptsize\lstinputlisting{code/ExactCover.cpp}}
  164. \subsection{RMQ Offline}
  165. {\scriptsize\lstinputlisting{code/RMQ_offline.cpp}}
  166. \subsection{Trie}
  167. {\scriptsize\lstinputlisting{code/Trie.cpp}}
  168. \subsection{Z-function}
  169. {\scriptsize\lstinputlisting{code/ZFunction.cpp}}
  170. \subsection{Floyd-Warshall (all shortest path)}
  171. {\scriptsize\lstinputlisting{code/FloydWarshall.cpp}}
  172. \subsection{Hash function for string}
  173. {\scriptsize\lstinputlisting{code/Hash.cpp}}
  174. \subsection{Rank Tree}
  175. {\scriptsize\lstinputlisting{code/RankTree.cpp}}
  176. \end{multicols}
  177. \end{document}