CF1073G.Yet Another LCP Problem

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Let LCP(s,t)\text{LCP}(s, t) be the length of the longest common prefix of strings ss and tt . Also let s[xy]s[x \dots y] be the substring of ss from index xx to index yy (inclusive). For example, if $s = $ "abcde", then s[13]=s[1 \dots 3] = "abc", s[25]=s[2 \dots 5] = "bcde".

You are given a string ss of length nn and qq queries. Each query is a pair of integer sets a1,a2,,aka_1, a_2, \dots, a_k and b1,b2,,blb_1, b_2, \dots, b_l . Calculate i=1i=kj=1j=lLCP(s[ain],s[bjn])\sum\limits_{i = 1}^{i = k} \sum\limits_{j = 1}^{j = l}{\text{LCP}(s[a_i \dots n], s[b_j \dots n])} for each query.

输入格式

The first line contains two integers nn and qq ( 1n,q21051 \le n, q \le 2 \cdot 10^5 ) — the length of string ss and the number of queries, respectively.

The second line contains a string ss consisting of lowercase Latin letters ( s=n|s| = n ).

Next 3q3q lines contains descriptions of queries — three lines per query. The first line of each query contains two integers kik_i and lil_i ( 1ki,lin1 \le k_i, l_i \le n ) — sizes of sets aa and bb respectively.

The second line of each query contains kik_i integers a1,a2,akia_1, a_2, \dots a_{k_i} ( 1a1<a2<<akin1 \le a_1 < a_2 < \dots < a_{k_i} \le n ) — set aa .

The third line of each query contains lil_i integers b1,b2,blib_1, b_2, \dots b_{l_i} ( 1b1<b2<<blin1 \le b_1 < b_2 < \dots < b_{l_i} \le n ) — set bb .

It is guaranteed that i=1i=qki2105\sum\limits_{i = 1}^{i = q}{k_i} \le 2 \cdot 10^5 and i=1i=qli2105\sum\limits_{i = 1}^{i = q}{l_i} \le 2 \cdot 10^5 .

输出格式

Print qq integers — answers for the queries in the same order queries are given in the input.

输入输出样例

  • 输入#1

    7 4
    abacaba
    2 2
    1 2
    1 2
    3 1
    1 2 3
    7
    1 7
    1
    1 2 3 4 5 6 7
    2 2
    1 5
    1 5
    

    输出#1

    13
    2
    12
    16
    

说明/提示

Description of queries:

  1. In the first query s[17]=abacabas[1 \dots 7] = \text{abacaba} and s[27]=bacabas[2 \dots 7] = \text{bacaba} are considered. The answer for the query is LCP(abacaba,abacaba)+LCP(abacaba,bacaba)+LCP(bacaba,abacaba)+LCP(bacaba,bacaba)=7+0+0+6=13\text{LCP}(\text{abacaba}, \text{abacaba}) + \text{LCP}(\text{abacaba}, \text{bacaba}) + \text{LCP}(\text{bacaba}, \text{abacaba}) + \text{LCP}(\text{bacaba}, \text{bacaba}) = 7 + 0 + 0 + 6 = 13 .
  2. In the second query s[17]=abacabas[1 \dots 7] = \text{abacaba} , s[27]=bacabas[2 \dots 7] = \text{bacaba} , s[37]=acabas[3 \dots 7] = \text{acaba} and s[77]=as[7 \dots 7] = \text{a} are considered. The answer for the query is LCP(abacaba,a)+LCP(bacaba,a)+LCP(acaba,a)=1+0+1=2\text{LCP}(\text{abacaba}, \text{a}) + \text{LCP}(\text{bacaba}, \text{a}) + \text{LCP}(\text{acaba}, \text{a}) = 1 + 0 + 1 = 2 .
  3. In the third query s[17]=abacabas[1 \dots 7] = \text{abacaba} are compared with all suffixes. The answer is the sum of non-zero values: LCP(abacaba,abacaba)+LCP(abacaba,acaba)+LCP(abacaba,aba)+LCP(abacaba,a)=7+1+3+1=12\text{LCP}(\text{abacaba}, \text{abacaba}) + \text{LCP}(\text{abacaba}, \text{acaba}) + \text{LCP}(\text{abacaba}, \text{aba}) + \text{LCP}(\text{abacaba}, \text{a}) = 7 + 1 + 3 + 1 = 12 .
  4. In the fourth query s[17]=abacabas[1 \dots 7] = \text{abacaba} and s[57]=abas[5 \dots 7] = \text{aba} are considered. The answer for the query is LCP(abacaba,abacaba)+LCP(abacaba,aba)+LCP(aba,abacaba)+LCP(aba,aba)=7+3+3+3=16\text{LCP}(\text{abacaba}, \text{abacaba}) + \text{LCP}(\text{abacaba}, \text{aba}) + \text{LCP}(\text{aba}, \text{abacaba}) + \text{LCP}(\text{aba}, \text{aba}) = 7 + 3 + 3 + 3 = 16 .
首页