QOJ.ac

QOJ

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

#21437. Tveimur skrefum frá

Statistics

Til er strengjabreytingavél sem vinnur sérstaklega með $\texttt{01}$-strengi og hefur innbyggt endanlegt mengi reglna $\mathcal{R}$. Hver regla er á forminu $(u, v)$, þar sem $u, v$ eru ekki tómir $\texttt{01}$-strengir af sömu lengd, sem þýðir að í einu aðgerðarskrefi má velja hlutstreng $u$ í núverandi streng og skipta honum út fyrir $v$. Í hvert sinn sem par af ekki tómum $\texttt{01}$-strengjum af sömu lengd $(s, t)$ er sett inn í vélina skilar vélin lágmarksfjölda aðgerðarskrefa sem þarf til að breyta $s$ í $t$, eða tilkynnir að engin lausn sé til.

Þú manst eftir því að hafa einu sinni sett $n$ pör af ekki tómum $\texttt{01}$-strengjum af sömu lengd $(s_1, t_1), (s_2, t_2), \dots, (s_n, t_n)$ inn í þessa vél. Fyrir tilviljun hafði sérhver fyrirspurn í minningunni ekki aðeins lausn heldur uppfyllti einnig að lágmarksfjöldi aðgerðarskrefa var $d_i \leqslant 2$.

Til að kanna hvort minnið sé að svíkja þig skaltu ákvarða: er til reglumengi $\mathcal{R}$ þannig að raunveruleg úttök vélarinnar fyrir þessi $n$ inntök séu í fullu samræmi við minningu þína?

Inntak

Fyrsta línan inniheldur jákvæða heiltölu $T$, sem táknar fjölda prófunartilvika.

Fyrir hvert prófunartilvik inniheldur fyrsta línan jákvæða heiltölu $n$, sem táknar fjölda fyrirspurnarfærslna. Í næstu $n$ línum inniheldur $i$-ta línan tvo ekki tóma $\texttt{01}$-strengi af sömu lengd $s_i, t_i$ og heiltölu $d_i$ ($0 \leqslant d_i \leqslant 2$), sem tákna upphafsstrenginn, markstrenginn og lágmarksfjölda aðgerðarskrefa sem vélin gaf upp fyrir $i$-ta inntakið.

Úttak

Fyrir hvert prófunartilvik skal prenta eina línu með einum streng. Ef til er reglumengi $\mathcal{R}$ sem uppfyllir skilyrðin skal prenta YES; annars skal prenta NO.

Þú mátt prenta YES og NO með hvaða samsetningu há- og lágstafa sem er; til dæmis teljast yes, Yes og YES öll sama svarið.

Dæmi

Inntak 1

3
3
010 010 0
001 010 1
001 100 2
2
10 01 1
100 010 2
1
0 1 2

Úttak 1

YES
NO
NO

Skýring

  • Prófunartilvik $1$: Hægt er að smíða mengi sem inniheldur aðeins eina reglu, $\mathcal{R} = \{(\texttt{01}, \texttt{10})\}$:
    • Fyrir $1$. fyrirspurnina gildir $s_1 = t_1 = \texttt{010}$, þannig að breytingin klárast án nokkurra aðgerða og lágmarksfjöldi aðgerðarskrefa er $0$.
    • Fyrir $2$. fyrirspurnina má skipta viðskeytinu $\texttt{01}$ í $\texttt{001}$ út fyrir $\texttt{10}$ og fá þannig $\texttt{010}$ í $1$ skrefi.
    • Fyrir $3$. fyrirspurnina, þar sem $\texttt{001}$ og $\texttt{100}$ eru ólíkir bæði í $1$. og $3$. sæti, getur regla af lengd $2$ ein og sér ekki klárað breytinguna í $1$ skrefi; hins vegar má fyrst skipta viðskeytinu $\texttt{01}$ í upphafsstrengnum $\texttt{001}$ út fyrir $\texttt{10}$ til að fá millistrenginn $\texttt{010}$, og síðan skipta forskeytinu $\texttt{01}$ í millistrengnum $\texttt{010}$ út fyrir $\texttt{10}$ til að fá markstrenginn $\texttt{100}$, svo lágmarksfjöldi aðgerðarskrefa er $2$.
  • Prófunartilvik $2$: Til að breyta $\texttt{10}$ í $\texttt{01}$ í $1$ skrefi verður reglumengið $\mathcal{R}$ að innihalda regluna $(\texttt{10}, \texttt{01})$. En um leið og sú regla er tekin með þarf í $2$. fyrirspurninni aðeins að skipta forskeytinu $\texttt{10}$ í $\texttt{100}$ út fyrir $\texttt{01}$ til að fá $\texttt{010}$ í $1$ skrefi, sem stangast á við $d_2 = 2$ í minningu þinni.
  • Prófunartilvik $3$: Allir strengir í breytingaferlinu verða að vera $\texttt{01}$-strengir af sömu lengd. Það eru aðeins tveir $\texttt{01}$-strengir af lengd $1$, nefnilega $\texttt{0}$ og $\texttt{1}$. Ef hægt er að breyta $\texttt{0}$ í $\texttt{1}$ hlýtur reglan $(\texttt{0}, \texttt{1})$ að vera til og þá dugar $1$ skref til að ljúka verkinu, svo ómögulegt er að það þurfi að minnsta kosti $2$ skref.

Takmarkanir

Fyrir öll prófunargögn er tryggt að $T \geqslant 1$, $n \geqslant 1$, $0 \leqslant d_i \leqslant 2$, $1 \leqslant |s_i| = |t_i|$, og að bæði $s_i, t_i$ séu strengir sem samanstanda eingöngu af stöfunum $\texttt{0}$ og $\texttt{1}$.

Látum $L = \sum_{i=1}^{n} |s_i|$ vera summu lengda allra upphafsstrengja í einu prófunartilviki og $\sum L$ vera summu $L$ yfir öll prófunartilvik í einni prófunarskrá; tryggt er að $\sum L \leqslant 3\times 10^6$.

Í þessu dæmi eru eðlilegar tengsl milli undirliða virkjuð.

Undirliður Stig $\sum L \leqslant$ Sérstakur eiginleiki
$1$ $16$ $4 \times 10^3$ A
$2$ $20$ $3\times 10^6$ A
$3$ $20$ $2\times 10^4$ Enginn
$4$ $28$ $10^5$ Enginn
$5$ $16$ $3 \times 10^6$ Enginn
  • Sérstakur eiginleiki A: Tryggt er að fyrir öll $1 \leqslant i \leqslant n$ gildi $|s_i| \geqslant 50$.

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.