2020/08/19 by Cardinal, Jean, Iacono, John
#Data Structures and Algorithms (cs.DS) #FOS: Computer and information sciences
paper · doi:10.48550/arxiv.2008.08417
The modular subset sum problem consists of deciding, given a modulus m, a multiset S of n integers in 0..m-1, and a target integer t, whether there exists a subset of S with elements summing to t \mod m , and to report such a set if it exists. We give a simple O(m log m)-time with high probability (w.h.p.) algorithm for the modular subset sum problem. This builds on and improves on a previous O(m log7 m) w.h.p. algorithm from Axiotis, Backurs, Jin, Tzamos, and Wu (SODA 19). Our method utilizes the ADT of the dynamic strings structure of Gawrychowski et al. (SODA~18). However, as this structure is rather complicated we present a much simpler alternative which we call the Data Dependent Tree. As an application, we consider the computational version of a fundamental theorem in zero-sum Ramsey theory. The Erdős-Ginzburg-Ziv Theorem states that a multiset of 2n - 1 integers always contains a subset of cardinality exactly n whose values sum to a multiple of n. We give an algorithm for finding such a subset in time O(n log n) w.h.p. which improves on an O(n2) algorithm due to Del Lungo, Marini, and Mori (Disc. Math. 09).