Ranking and Unranking k-subsequence universal words
Abstract
A subsequence of a word $w$ is a word $u$ such that $u = w[i_1] w[i_2] , \dots w[i_{|u|}]$, for some set of indices $1 \leq i_1 < i_2 < \dots < i_k \leq |w|$. A word $w$ is $k$-subsequence universal over an alphabet $Σ$ if every word in $Σ^k$ appears in $w$ as a subsequence. In this paper, we provide new algorithms for $k$-subsequence universal words of fixed length $n$ over the alphabet $Σ= \{1,2,\dots, σ\}$. Letting $\mathcal{U}(n,k,σ)$ denote the set of $n$-length $k$-subsequence universal words over $Σ$, we provide:
* an $O(n k σ)$ time algorithm for counting the size of $\mathcal{U}(n,k,σ)$;
* an $O(n k σ)$ time algorithm for ranking words in the set $\mathcal{U}(n,k,σ)$;
* an $O(n k σ)$ time algorithm for unranking words from the set $\mathcal{U}(n,k,σ)$;
* an algorithm for enumerating the set $\mathcal{U}(n,k,σ)$ with $O(n σ)$ delay after $O(n k σ)$ preprocessing.
BibTeX
Loading...