Interesting String Problem

Правка en9, от Apple_Method, 2021-04-09 21:18:49

Hi everyone,

I was thinking about the following string problem:

You are given a string of length n, and q queries. Each query is a substring of the original string (s[l ... r]). For each query, you want to find the number of prefixes of the substring that are equal to a suffix. For example:

abcabc

2

1 3

1 5

For the first query, the answer should be 1, and the second query, the answer should be 2 (abcab == abcab, and ab == ab).

I haven't made much progress so far (I tried getting aho-corasick and suffix array to work, but I didn't find a way). Assuming $$$n \le 10^5$$$ and $$$q \le 10^5$$$, none of my ideas work.

Is there a solution to this problem, or is the lower bound on the time complexity $$$O(n^2+q)$$$ or $$$O(nq)$$$ (the best solutions i have found so far).

Because the problem has no source (I was thinking about problem ideas and stumbled upon this one) there might be no answer, but the problem seems so simple that there has to be one.

Excuse me if there are any mistakes here, as this is my first blog ever

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
en9 Английский Apple_Method 2021-04-09 21:18:49 184
en8 Английский Apple_Method 2021-04-09 20:22:01 17 (published)
en7 Английский Apple_Method 2021-04-09 20:21:50 17 Tiny change: 'd getting aho-corasick and suffix ar' -> 'd getting suffix ar'
en6 Английский Apple_Method 2021-04-09 20:20:55 0 Tiny change: '\nabcabc\n2\n1 3\n1 5\n\nF' -> '\nabcabc\n\n2\n\n1 3\n\n1 5\n\nF'
en5 Английский Apple_Method 2021-04-09 20:20:11 6 Tiny change: '\nabcabc\n2\n1 3\n1 5\n\nF' -> '\nabcabc\n\n2\n\n1 3\n\n1 5\n\nF' (saved to drafts)
en4 Английский Apple_Method 2021-04-09 20:19:38 0 (published)
en3 Английский Apple_Method 2021-04-09 20:19:16 1
en2 Английский Apple_Method 2021-04-09 20:18:30 17 Tiny change: ' blog ever' -> ' blog ever.'
en1 Английский Apple_Method 2021-04-09 20:17:19 901 Initial revision (saved to drafts)