Modular Subset Sum, Dynamic Strings, and Zero-Sum Sets
The modular subset sum problem consists of deciding, given a modulus m, a multiset S of n integers in 0..m, and a target integer t, whether there exists a subset of S with elements summing to t 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 Õ(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(n^2) algorithm due to Del Lungo, Marini, and Mori (Disc. Math. 09).
READ FULL TEXT