main.tex 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  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. \begin{document}
  45. \tableofcontents
  46. \begin{multicols}{2}
  47. %\chapter{ACM Cookbook}
  48. \section{Algorithmique du texte}
  49. \subsection{Tableaux de suffixes}
  50. Temps de cuisson : $O(n \log^2 n)$
  51. {\scriptsize\lstinputlisting{code/suffix.cpp}} % TODO
  52. \subsection{Knuth-Morris-Pratt}
  53. Temps de cuisson : $O(n)$
  54. {\scriptsize\lstinputlisting{code/kmp.cpp}} % OK
  55. \subsection{Rabin-Karp 2D}
  56. {\scriptsize\lstinputlisting{code/RabinKarp.cpp}} % OK
  57. \subsection{AC Automaton}
  58. {\scriptsize\lstinputlisting{code/ACAutomaton.cpp}} % OK
  59. \section{Optimisation}
  60. \subsection{Sparse max-flow}
  61. {\scriptsize\lstinputlisting{code/Dinic.cc}} % OK % à supprimer ?
  62. \subsection{Min-cost max-flow}
  63. {\scriptsize\lstinputlisting{code/MinCostMaxFlow.cc}} % OK
  64. \subsection{Push-relabel max-flow}
  65. {\scriptsize\lstinputlisting{code/PushRelabel.cc}} % OK
  66. \subsection{Min-cost matching}
  67. {\scriptsize\lstinputlisting{code/MinCostMatching.cc}} % OK
  68. \subsection{Max bipartite matching $O(EV)$}
  69. {\scriptsize\lstinputlisting{code/MaxBipartiteMatching.cc}}
  70. \subsection{Max bipartite matching $O(E\sqrt V)$}
  71. {\scriptsize\lstinputlisting{code/MaxBipartiteMatching_sqrt.cc}} % OK
  72. \subsection{Global min cut}
  73. {\scriptsize\lstinputlisting{code/MinCut.cc}}
  74. \section{Géométrie}
  75. \subsection{Convex hull}
  76. {\scriptsize\lstinputlisting{code/ConvexHull.cc}} % OK
  77. \subsection{Miscellaneous geometry}
  78. {\scriptsize\lstinputlisting{code/Geometry.cc}}
  79. % OK RotateCCW
  80. % OK ComputeSignedArea
  81. \subsection{Slow Delaunay triangulation}
  82. {\scriptsize\lstinputlisting{code/Delaunay.cc}} % TODO chercher algo en N (incremental flip)
  83. \section{Algorithmes numériques}
  84. \subsection{Number theoretic algorithms (modular, Chinese remainder, linear Diophantine)}
  85. {\scriptsize\lstinputlisting{code/Euclid.cc}}
  86. \subsection{Systems of linear equations, matrix inverse, determinant}
  87. {\scriptsize\lstinputlisting{code/GaussJordan.cc}}
  88. \subsection{Reduced row echelon form, matrix rank}
  89. {\scriptsize\lstinputlisting{code/ReducedRowEchelonForm.cc}}
  90. \subsection{Fast Fourier transform}
  91. {\scriptsize\lstinputlisting{code/FFT.cpp}} % OK
  92. \subsection{Simplex algorithm}
  93. {\scriptsize\lstinputlisting{code/Simplex.cc}} % OK
  94. \section{Graphes}
  95. \subsection{Fast Dijkstra's algorithm}
  96. {\scriptsize\lstinputlisting{code/FastDijkstra.cc}}
  97. \subsection{Strongly connected components}
  98. {\scriptsize\lstinputlisting{code/SCC.cc}}
  99. \subsection{DFS/BFS}
  100. {\scriptsize\lstinputlisting{code/BFS_DFS.cpp}} % OK
  101. \subsection{Bellman-Ford}
  102. {\scriptsize\lstinputlisting{code/BellmanFord.cpp}} % OK
  103. \section{Structures de données}
  104. \subsection{Suffix arrays}
  105. {\scriptsize\lstinputlisting{code/SuffixArray.cc}} % TODO pourquoi un vector<vector<int>> ? Pourquoi dans le code de Shendan best[20][MAXN] ? Si on garde celui de JJ rajouter RMQ etc
  106. \subsection{Binary Indexed Tree}
  107. {\scriptsize\lstinputlisting{code/BIT.cc}}
  108. \subsection{Union-Find Set}
  109. {\scriptsize\lstinputlisting{code/UnionFind.cc}}
  110. \subsection{KD-tree}
  111. {\scriptsize\lstinputlisting{code/KDTree.cc}}
  112. \subsection{Segment Tree}
  113. {\scriptsize\lstinputlisting{code/SegmentTree.cpp}}
  114. \subsection{Bits Sets}
  115. {\scriptsize\lstinputlisting{code/BitSet.cpp}} % OK
  116. \section{Divers}
  117. \subsection{Longest increasing subsequence}
  118. {\scriptsize\lstinputlisting{code/LongestIncreasingSubsequence.cc}}
  119. \subsection{Maximum rectangle under an histogram / in a matrix}
  120. {\scriptsize\lstinputlisting{code/BiggestRectangle.cpp}}
  121. \subsection{Number of inversions}
  122. {\scriptsize\lstinputlisting{code/Inversion.cpp}} % OK
  123. \subsection{Dichotomie}
  124. {\scriptsize\lstinputlisting{code/Dichotomie.cpp}} % regarder
  125. \subsection{Dates}
  126. {\scriptsize\lstinputlisting{code/Dates.cc}}
  127. \subsection{Prime numbers}
  128. {\scriptsize\lstinputlisting{code/Primes.cc}}
  129. \subsection{Tips}
  130. {\scriptsize\lstinputlisting{code/Tips.cpp}}
  131. \end{multicols}
  132. \end{document}