main.tex 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289
  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. \begin{multicols}{2}
  50. \tableofcontents
  51. \end{multicols}
  52. \begin{multicols}{2}
  53. %\chapter{ACM Cookbook}
  54. \section{Algorithmique du texte}
  55. \subsection{Knuth-Morris-Pratt}
  56. Temps de cuisson : $O(n)$
  57. {\scriptsize\lstinputlisting{code/kmp.cpp}} % OK
  58. \subsection{Rabin-Karp 2D}
  59. {\scriptsize\lstinputlisting{code/RabinKarp.cpp}} % OK
  60. \subsection{AC Automaton}
  61. {\scriptsize\lstinputlisting{code/ACAutomaton.cpp}} % OK
  62. \subsection{Z-function}
  63. {\scriptsize\lstinputlisting{code/ZFunction.cpp}}
  64. \subsection{Hash function for string}
  65. {\scriptsize\lstinputlisting{code/Hash.cpp}}
  66. \section{Optimisation}
  67. \subsection{Sparse max-flow}
  68. {\scriptsize\lstinputlisting{code/Dinic.cc}} % OK % à supprimer ?
  69. \subsection{Min-cost max-flow}
  70. {\scriptsize\lstinputlisting{code/MinCostMaxFlow.cc}} % OK
  71. \subsection{Push-relabel max-flow}
  72. {\scriptsize\lstinputlisting{code/PushRelabel.cc}} % OK
  73. \subsection{Min-cost matching}
  74. {\scriptsize\lstinputlisting{code/MinCostMatching.cc}} % OK
  75. \subsection{Max bipartite matching $O(EV)$}
  76. {\scriptsize\lstinputlisting{code/MaxBipartiteMatching.cc}}
  77. \subsection{Max bipartite matching $O(E\sqrt V)$}
  78. {\scriptsize\lstinputlisting{code/MaxBipartiteMatching_sqrt.cc}} % OK
  79. \subsection{Stable matchings}
  80. {\scriptsize\lstinputlisting{code/StableMatchings.cpp}}
  81. \subsection{Global min cut}
  82. {\scriptsize\lstinputlisting{code/MinCut.cc}}
  83. \section{Géométrie}
  84. \subsection{Convex hull}
  85. {\scriptsize\lstinputlisting{code/ConvexHull.cc}} % OK
  86. \subsection{Miscellaneous geometry}
  87. {\scriptsize\lstinputlisting{code/Geometry.cpp}}
  88. % OK RotateCCW
  89. % OK ComputeSignedArea
  90. \subsection{Half-plane intersection}
  91. {\scriptsize\lstinputlisting{code/HalfPlaneIntersection.cpp}}
  92. \subsection{Closest Pair}
  93. {\scriptsize\lstinputlisting{code/ClosestPair.cpp}}
  94. \subsection{Slow Delaunay triangulation}
  95. {\scriptsize\lstinputlisting{code/Delaunay.cpp}} % TODO chercher algo en N (incremental flip)
  96. \section{Algorithmes numériques}
  97. \subsection{Number theoretic algorithms (modular, Chinese remainder, linear Diophantine)}
  98. {\scriptsize\lstinputlisting{code/Euclid.cpp}}
  99. \subsection{Discrete Logarithm $O(\sqrt n\log n)$}
  100. {\scriptsize\lstinputlisting{code/DiscreteLog.cpp}}
  101. \subsection{Euler's function}
  102. {\scriptsize\lstinputlisting{code/Euler.cpp}}
  103. \subsection{Systems of linear equations, matrix inverse, determinant}
  104. {\scriptsize\lstinputlisting{code/GaussJordan.cc}}
  105. \subsection{Reduced row echelon form, matrix rank}
  106. {\scriptsize\lstinputlisting{code/ReducedRowEchelonForm.cc}}
  107. \subsection{Fast Fourier transform}
  108. {\scriptsize\lstinputlisting{code/FFT.cpp}} % OK
  109. \subsection{Simplex algorithm}
  110. {\scriptsize\lstinputlisting{code/Simplex.cc}} % OK
  111. \subsection{Binomial coefficient}
  112. {\scriptsize\lstinputlisting{code/Binom.cpp}}
  113. \subsection{BigInt}
  114. {\scriptsize\lstinputlisting{code/BigInt.cpp}}
  115. \subsection{Sieve of Eratosthenes}
  116. {\scriptsize\lstinputlisting{code/Sieve.cpp}}
  117. \section{Graphes}
  118. \subsection{Fast Dijkstra's algorithm}
  119. {\scriptsize\lstinputlisting{code/FastDijkstra.cc}}
  120. \subsection{Bellman-Ford}
  121. {\scriptsize\lstinputlisting{code/BellmanFord.cpp}} % OK
  122. \subsection{Fast Bellman-Ford}
  123. {\scriptsize\lstinputlisting{code/SPFA.cpp}}
  124. \subsection{Floyd-Warshall (all shortest path)}
  125. {\scriptsize\lstinputlisting{code/FloydWarshall.cpp}}
  126. \subsection{Strongly connected components}
  127. {\scriptsize\lstinputlisting{code/SCC.cc}}
  128. \subsection{DFS/BFS}
  129. {\scriptsize\lstinputlisting{code/BFS_DFS.cpp}} % OK
  130. \subsection{Topological Sort}
  131. {\scriptsize\lstinputlisting{code/TopologicalSort.cpp}}
  132. \subsection{Eulerian Circuit}
  133. {\scriptsize\lstinputlisting{code/EulerCircuit.cpp}}
  134. \subsection{Test Bipartite Graph}
  135. {\scriptsize\lstinputlisting{code/BipartiteTest.cpp}}
  136. \subsection{Cut vertex / Bridge}
  137. {\scriptsize\lstinputlisting{code/CutVertexBridge.cpp}}
  138. \subsection{Biconnected component}
  139. {\scriptsize\lstinputlisting{code/BCC.cpp}}
  140. \subsection{Exact Cover}
  141. {\scriptsize\lstinputlisting{code/ExactCover.cpp}}
  142. \section{Structures de données}
  143. \subsection{Suffix arrays}
  144. {\scriptsize\lstinputlisting{code/SuffixArray.cpp}}
  145. \subsection{Binary Indexed Tree}
  146. {\scriptsize\lstinputlisting{code/BIT.cc}}
  147. \subsection{Union-Find Set}
  148. {\scriptsize\lstinputlisting{code/UnionFind.cc}}
  149. \subsection{KD-tree}
  150. {\scriptsize\lstinputlisting{code/KDTree.cc}}
  151. \subsection{Segment Tree}
  152. {\scriptsize\lstinputlisting{code/SegmentTree.cpp}} % OK
  153. \subsection{Treap}
  154. {\scriptsize\lstinputlisting{code/Treap.cpp}} % OK
  155. \subsection{Bits Sets}
  156. {\scriptsize\lstinputlisting{code/BitSet.cpp}} % OK
  157. \subsection{RMQ Offline}
  158. {\scriptsize\lstinputlisting{code/RMQ_offline.cpp}}
  159. \subsection{Trie}
  160. {\scriptsize\lstinputlisting{code/Trie.cpp}}
  161. \subsection{Rank Tree}
  162. {\scriptsize\lstinputlisting{code/RankTree.cpp}}
  163. \section{Divers}
  164. \subsection{Longest increasing subsequence}
  165. {\scriptsize\lstinputlisting{code/LongestIncreasingSubsequence.cpp}}
  166. \subsection{Maximum rectangle under an histogram / in a matrix}
  167. {\scriptsize\lstinputlisting{code/BiggestRectangle.cpp}}
  168. \subsection{Number of inversions}
  169. {\scriptsize\lstinputlisting{code/Inversion.cpp}} % OK
  170. \subsection{Dichotomie}
  171. {\scriptsize\lstinputlisting{code/Dichotomie.cpp}} % regarder
  172. \subsection{2 SAT}
  173. {\scriptsize\lstinputlisting{code/2SAT.cpp}}
  174. \subsection{Dates}
  175. {\scriptsize\lstinputlisting{code/Dates.cpp}}
  176. \subsection{Prime numbers}
  177. {\scriptsize\lstinputlisting{code/Primes.cc}}
  178. \subsection{Tips}
  179. {\scriptsize\lstinputlisting{code/Tips.cpp}}
  180. \subsection{Skeleton}
  181. {\scriptsize\lstinputlisting{code/Skeleton.cpp}}
  182. \end{multicols}
  183. \renewcommand{\arraystretch}{2} % ver
  184. \setlength\tabcolsep{2.3em} % hor
  185. \begin{tabular}{ | l | l | l | l | l | l | l | l | l | l | l | }
  186. \hline
  187. & A & B & C & D & E & F & G & H & I & J \\
  188. \hline
  189. Ol &&&&&&&&&&\\
  190. \hline
  191. Sh &&&&&&&&&&\\
  192. \hline
  193. Th &&&&&&&&&&\\
  194. \hline
  195. C&&&&&&&&&&\\
  196. O&&&&&&&&&&\\
  197. M&&&&&&&&&&\\
  198. M&&&&&&&&&&\\
  199. E&&&&&&&&&&\\
  200. N&&&&&&&&&&\\
  201. T&&&&&&&&&&\\
  202. A&&&&&&&&&&\\
  203. I&&&&&&&&&&\\
  204. R&&&&&&&&&&\\
  205. E&&&&&&&&&&\\
  206. S&&&&&&&&&&\\
  207. \hline
  208. \end{tabular}
  209. \end{document}