QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100 Hackable ✓

#22829. Binær tilordning

Statistics

Vuong er en av tidenes største matematikere! Hobbyen hans er å finne ut matematiske egenskaper ved alt mulig, og noen ganger til og med ved ting som ikke eksisterer! På bursdagen hans ga programmerervennen hans ham en binærstreng $S$ med lengde $n$. Etter en stund fant han ut to svært interessante egenskaper ved $S$:

  • $X(S)$: lengden på den korteste strengen som ikke er en delsekvens av $S$.

  • $Y(S)$: antallet strenger med lengde $X(S)$ som ikke er en delsekvens av $S$.

Da programmerervennen så hvor gøy Vuong hadde det med å finne disse to egenskapene, tenkte han at det ville vært flott å endre litt på strengen $S$ også. Programmereren vil sekvensielt gjøre $q$ endringer på strengen $S$. Hver endring er av en av følgende typer:

  • 0 l r: sett $S_l,S_{l+1},\ldots,S_r$ til $0$.

  • 1 l r: sett $S_l,S_{l+1},\ldots,S_r$ til $1$.

  • F l r: inverter $S_l,S_{l+1},\ldots,S_r$. Det vil si, for $l\le i\le r$, hvis $S_i$ er $0$, sett det til $1$, ellers sett det til $0$.

Og selvfølgelig, for hver endrede versjon av $S$, syntes Vuong det var like gøy å finne $X(S)$ og $Y(S)$, fordi det var bursdagen hans!

Men en gåte er ikke komplett uten en fasit. Gitt strengen $S$ og listen over $q$ endringer på strengen $S$, hjelp programmerervennen med å finne $X(S)$ og $Y(S)$ for hver endring, slik at han kan sjekke Vuongs resultat mot fasiten.

Fordi svaret kan bli svært stort, vennligst skriv ut svaret modulo $10^9+7$.

En streng $a$ er en delsekvens av en streng $b$ hvis $a$ kan oppnås fra $b$ ved å slette flere (muligens null eller alle) tegn. For eksempel er bd, acd, b delsekvenser av abcd, mens da ikke er det.

Inndata

Den første linjen inneholder to heltall $n,q$ ($1\le n,q\le100\,000$) — lengden på strengen $S$ og antallet endringer.

Den andre linjen inneholder binærstrengen $S$ med lengde $n$.

Den $i$-te linjen på de neste $q$ linjene inneholder beskrivelsen av den $i$-te operasjonen på en av følgende former:

  • 0 l r ($1\le l\le r\le n$): sett $S_l,S_{l+1},\ldots,S_r$ til $0$.

  • 1 l r ($1\le l\le r\le n$): sett $S_l,S_{l+1},\ldots,S_r$ til $1$.

  • F l r ($1\le l\le r\le n$): inverter $S_l,S_{l+1},\ldots,S_r$.

Utdata

For hver endring av $S$, skriv ut på en linje to heltall $X(S)$ og $Y(S)$ modulo $10^9+7$.

Eksempler

Inndata 1

4 3
0110
0 2 3
1 3 4
F 2 3

Utdata 1

1 1
2 1
3 4

Forklaring

I eksempelet er strengen $S$ lik 0110, og det er $q=3$ endringer på $S$.

Følgende tabell viser endringene av $S$.

Rekkefølge Endring Verdi av $S$ $X(S)$ $Y(S)$
Start 0110 $3$ $5$
$1$ 0 2 3 0000 $1$ $1$
$2$ 1 3 4 0011 $2$ $1$
$3$ F 2 3 0101 $3$ $4$
  • For $S=$ 0000 er $X(S)=1$ og $Y(S)=1$, fordi det finnes én streng med lengde $1$ som ikke er en delsekvens av $S$, nemlig strengen 1.

  • For $S=$ 0011 er strengen 10 den korteste, og er den eneste strengen med lengde $2$ som ikke er en delsekvens av $S$.

  • For $S=$ 0101 er listen over strenger av korteste lengde som ikke er delsekvenser av $S$ lik {000, 100, 110, 111}.

  • For startstrengen $S=$ 0110 er listen over strenger av korteste lengde som ikke er delsekvenser av $S$ lik {000, 001, 100, 101, 111}. Så $X(S)=3$ og $Y(S)=5$, men du trenger ikke å skrive ut disse tallene.

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.