main.tex 6.8 KB

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