QOJ.ac

QOJ

Süre Sınırı: 1 s Bellek Sınırı: 512 MB Toplam puan: 100 Zorluk: [göster] Hack'lenebilir ✓

#6759. String

İstatistikler

Xiao Y é um estudante universitário e recentemente tem pesquisado problemas sobre strings.

Xiao Y aprendeu as seguintes definições sobre strings:

  • Dada uma string $s[1:n]$ de comprimento $n$, definimos a sua substring $s[l:r]$ ($1\leq l\leq r\leq n$) como a nova string obtida selecionando $s[l],s[l+1],\ldots,s[r]$ e concatenando-os nessa ordem.
  • Dada uma string $s[1:n]$ de comprimento $n$, definimos o resultado da sua inversão, $R(s)$, como a concatenação de $s[n],s[n-1],\ldots,s[1]$, nessa ordem, ou seja, a string formada concatenando os caracteres em ordem inversa.
  • Dadas duas strings $a[1:n],b[1:n]$, ambas de comprimento $n$, definimos que $a$ é lexicograficamente menor que $b$ se, e somente se, existe $1\leq i\leq n$ tal que, para todo $1\leq j<i$, $a[j]=b[j]$, e $a[i]<b[i]$.

Depois de aprender essas definições, Xiao Y pensou no seguinte problema:

É dada uma string $s[1:n]$ de comprimento $n$. Há $q$ consultas, cada uma fornecendo dois parâmetros $i,r$. Você precisa determinar quantos valores de $l$ satisfazem as seguintes condições:

  • $1\leq l\leq r$.
  • $s[i:i+l-1]$ é lexicograficamente menor que $R(s[i+l:i+2l-1])$.

Xiao Y pede a sua ajuda para resolver esse problema.

Entrada

Leia os dados do arquivo string.in.

Este problema contém vários casos de teste.

A primeira linha da entrada contém dois inteiros $c,t$, que representam, respectivamente, o número do ponto de teste e o número de casos de teste. $c=0$ indica que o ponto de teste é um exemplo.

Em seguida, são fornecidos os casos de teste, um após o outro. Para cada caso de teste:

A primeira linha contém dois inteiros positivos $n,q$, que representam o comprimento da string e o número de consultas.

A segunda linha contém uma string $s$ de comprimento $n$, formada apenas por letras minúsculas.

Cada uma das próximas $q$ linhas contém dois inteiros positivos $i,r$, que representam uma consulta. É garantido que $i+2r-1\leq n$.

Saída

Escreva no arquivo string.out.

Para cada consulta de cada caso de teste, imprima uma linha com um inteiro: o número de valores de $l$ que satisfazem as condições.

Exemplos

Entrada 1

0 2
9 3
abacababa
1 4
2 4
3 3
9 3
abaabaaba
1 4
2 4
3 3

Saída 1

4
0
3
2
0
2

Explicação

Para a primeira consulta do primeiro caso de teste:

  • Quando $l=1$, $s[i:i+l-1]=a$ e $R(s[i+l:i+l+l-1])=b$.
  • Quando $l=2$, $s[i:i+l-1]=ab$ e $R(s[i+l:i+l+l-1])=ca$.
  • Quando $l=3$, $s[i:i+l-1]=aba$ e $R(s[i+l:i+l+l-1])=bac$.
  • Quando $l=4$, $s[i:i+l-1]=abac$ e $R(s[i+l:i+l+l-1])=baba$.

Em todos esses quatro casos, $s[i:i+l-1]$ é lexicograficamente menor que $R(s[i+l:i+2l-1])$, portanto a resposta é $4$.

Exemplo 2

Consulte string/string2.in e string/string2.ans no diretório do participante.

Este exemplo satisfaz os limites do ponto de teste 5.

Exemplo 3

Consulte string/string3.in e string/string3.ans no diretório do participante.

Exemplo 4

Consulte string/string4.in e string/string4.ans no diretório do participante.

Este exemplo satisfaz os limites dos pontos de teste $24\sim 25$.

Restrições

Para todos os dados de teste, é garantido que $1\leq t\leq 5$, $1\leq n\leq 10^5$, $1\leq q\leq 10^5$, $1\leq i+2r-1\leq n$, e que a string $s$ contém apenas letras minúsculas.

Ponto de teste $n$ $q$ Propriedade especial
$1$ $\leq 5$ $\leq 5$ A
$2$ $\leq 10$ $\leq 10$
$3$ $\leq 20$ $\leq 20$
$4$ $\leq 50$ $\leq 50$
$5$ $\leq 10^2$ $\leq 10^2$
$6$ $\leq 10^3$ $\leq 10^3$ Nenhuma
$7$ $\leq 2\,000$ $\leq 2\,000$
$8$ $\leq 3\,000$ $\leq 3\,000$
$9$ $\leq 4\,000$ $\leq 4\,000$
$10$ $\leq 23\,333$ $\leq 23\,333$ A
$11$ $\leq 5\times 10^4$ $\leq 5\times 10^4$
$12$ $\leq 75\,000$ $\leq 75\,000$
$13$ $\leq 9\times 10^4$ $\leq 9\times 10^4$
$14$ $\leq 10^5$ $\leq 10^5$
$15$ $\leq 23\,333$ $\leq 23\,333$ B
$16$ $\leq 75\,000$ $\leq 75\,000$
$17$ $\leq 9\times 10^4$ $\leq 9\times 10^4$
$18$ $\leq 10^5$ $\leq 10^5$
$19$ $\leq 23\,333$ $\leq 23\,333$ Nenhuma
$20$ $\leq 5\times 10^4$ $\leq 5\times 10^4$
$21$ $\leq 75\,000$ $\leq 75\,000$
$22$ $\leq 9\times 10^4$ $\leq 9\times 10^4$
$23$ $\leq 95\,000$ $\leq 95\,000$
$24$ $\leq 10^5$ $\leq 10^5$
$25$
  • Propriedade especial A: é garantido que a string contém apenas os caracteres a e b, sendo cada caractere escolhido entre a e b de forma independente e com igual probabilidade.
  • Propriedade especial B: é garantido que caracteres adjacentes da string são diferentes.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.