Peeling and Nibbling the Cactus: Subexponential-Time Algorithms for   Counting Triangulations and Related Problems
  Given a set of $n$ points $S$ in the plane, a triangulation $T$ of $S$ is a maximal set of non-crossing segments with endpoints in $S$. We present an algorithm that computes the number of triangulations on a given set of $n$ points in time $n^{(11+ o(1))\sqrt{n} }$, significantly improving the previous best running time of $O(2^n n^2)$ by Alvarez and Seidel [SoCG 2013]. Our main tool is identifying separators of size $O(\sqrt{n})$ of a triangulation in a canonical way. The definition of the separators are based on the decomposition of the triangulation into nested layers ("cactus graphs"). Based on the above algorithm, we develop a simple and formal framework to count other non-crossing straight-line graphs in $n^{O(\sqrt{n})}$ time. We demonstrate the usefulness of the framework by applying it to counting non-crossing Hamilton cycles, spanning trees, perfect matchings, $3$-colorable triangulations, connected graphs, cycle decompositions, quadrangulations, $3$-regular graphs, and more. 
D\'aniel Marx and Tillmann Miltzow
cs.CG cs.DM cs.DS math.CO