Related papers: Concatenation trees: A framework for efficient uni…
A Skolem sequence is a linear arrangement of the multiset, {1, 1, 2, 2, ..., n, n} such that if r in [n] appears in positions i and j, then |i-j| = r. We first translate the problem to a particular set of perfect matchings, then apply the…
We show how to construct a dynamic ordered dictionary, supporting insert/delete/rank/select on a set of $n$ elements from a universe of size $U$, that achieves the optimal amortized expected time complexity of $O(1 + \log n / \log \log U)$,…
A large number of NP-hard graph problems can be solved in $f(w)n^{O(1)}$ time and space when the input graph is provided together with a tree decomposition of width $w$, in many cases with a modest exponential dependence $f(w)$ on $w$.…
One of the fundamental ways to construct De Bruijn sequences is by using a shift-rule. A shift-rule receives a word as an argument and computes the symbol that appears after it in the sequence. An optimal shift-rule for an $(n,k)$-De Bruijn…
Motivated by an application in computational topology, we consider a novel variant of the problem of efficiently maintaining dynamic rooted trees. This variant requires merging two paths in a single operation. In contrast to the standard…
The article describes the structural and algorithmic relations between Cartesian trees and Lyndon Trees. This leads to a uniform presentation of the Lyndon table of a word corresponding to the Next Nearest Smaller table of a sequence of…
For a set of integers $I$, we define a $q$-ary $I$-cycle to be a assignment of the symbols 1 through $q$ to the integers modulo $q^n$ so that every word appears on some translate of $I$. This definition generalizes that of de Bruijn cycles,…
A de Bruijn torus is the two dimensional generalization of a de Bruijn sequence. While some methods exist to generate these tori, only a few methods of construction are known. We present a novel method to generate de Bruijn tori with…
The block tree [Belazzougui et al., J. Comput. Syst. Sci. '21] is a compressed representation of a length-$n$ text that supports access, rank, and select queries while requiring only $O(z\log\frac{n}{z})$ words of space, where $z$ is the…
We present time-efficient distributed algorithms for decomposing graphs with large edge or vertex connectivity into multiple spanning or dominating trees, respectively. As their primary applications, these decompositions allow us to achieve…
The merging of succinct data structures is a well established technique for the space efficient construction of large succinct indexes. In the first part of the paper we propose a new algorithm for merging succinct representations of de…
In this paper, we build on recent results by Chauve et al. (2014) and Bahrani and Lumbroso (2017), which combined the split-decomposition, as exposed by Gioan and Paul, with analytic combinatorics, to produce new enumerative results on…
We generalize the notion of a de Bruijn sequence to a "multi de Bruijn sequence": a cyclic or linear sequence that contains every k-mer over an alphabet of size q exactly m times. For example, over the binary alphabet {0,1}, the cyclic…
\begin{abstract} Greedy permutations, also known as Gonzalez Orderings or Farthest Point Traversals are a standard way to approximate $k$-center clustering and have many applications in sampling and approximating metric spaces. A greedy…
Flat combining is a concurrency threaded technique whereby one thread performs all the operations in batch by scanning a queue of operations to-be-done and performing them together. Flat combining makes sense as long as k operations each…
The combinatorics of RNA plays a central role in biology. Mathematical biologists have several commonly-used models for RNA: words in a fixed alphabet (representing the primary sequence of nucleotides) and plane trees (representing the…
Although a wide variety of handcrafted concurrent data structures have been proposed, there is considerable interest in universal approaches (henceforth called Universal Constructions or UCs) for building concurrent data structures. These…
Many combinatorial optimisation problems hide algebraic structures that, once exposed, shrink the search space and improve the chance of finding the global optimal solution. We present a general framework that (i) identifies algebraic…
We introduce bud generating systems, which are used for combinatorial generation. They specify sets of various kinds of combinatorial objects, called languages. They can emulate context-free grammars, regular tree grammars, and synchronous…
Generating trees are a useful technique in the enumeration of various combinatorial objects, particularly restricted permutations. Quite often the generating tree for the set of permutations avoiding a set of patterns requires infinitely…