QOJ.ac

QOJ

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

#21437. Екі қадам жерде

Statistics

Тек $\texttt{01}$ жолдарын өңдейтін арнайы жол түрлендіру машинасы бар, оның ішінде бірнеше ережеден тұратын ақырлы $\mathcal{R}$ жиыны алдын ала орнатылған. Әрбір ереже $(u, v)$ түрінде болады, мұндағы $u, v$ — ұзындықтары бірдей бос емес $\texttt{01}$ жолдары; бұл бір операция қадамында ағымдағы жолдың $u$ ішкі жолын таңдап, оны $v$ жолына ауыстыруға болатынын білдіреді. Машинаға ұзындықтары бірдей бос емес $(s, t)$ $\texttt{01}$ жолдар жұбы енгізілген сайын, машина $s$ жолын $t$ жолына түрлендіру үшін қажетті ең аз операция қадамдарының санын шығарады немесе шешімі жоқ екенін хабарлайды.

Сіз бұрын осы машинаға ұзындықтары бірдей бос емес $n$ $\texttt{01}$ жолдар жұбын $(s_1, t_1), (s_2, t_2), \dots, (s_n, t_n)$ енгізгеніңізді есіңізге түсірдіңіз. Кездейсоқ сәйкестікпен, сіздің жадыңызда әрбір сұранымның шешімі табылып қана қоймай, ең аз операция қадамдарының саны $d_i \leqslant 2$ шартын да қанағаттандырған.

Жадыңыздың қателеспегенін тексеру үшін келесіні анықтаңыз: машинаның осы $n$ енгізуге беретін нақты нәтижелері сіздің жадыңыздағы мәліметтермен толық сәйкес келетіндей $\mathcal{R}$ ережелер жиыны бар ма?

Кіріс деректер

Бірінші жолда тест жиындарының санын білдіретін бір оң бүтін сан $T$ берілген.

Әрбір тест жиыны үшін бірінші жолда сұраным жазбаларының санын білдіретін бір оң бүтін сан $n$ берілген. Келесі $n$ жолдың $i$-ші жолында ұзындықтары бірдей бос емес екі $\texttt{01}$ жолы $s_i, t_i$ және бір бүтін сан $d_i$ ($0 \leqslant d_i \leqslant 2$) берілген; олар сәйкесінше $i$-ші енгізудегі бастапқы жолды, мақсатты жолды және машина берген ең аз операция қадамдарының санын білдіреді.

Шығыс деректер

Әрбір тест жиыны үшін бір жолға бір сөз шығарыңыз. Егер шарттарды қанағаттандыратын $\mathcal{R}$ ережелер жиыны бар болса, YES деп, әйтпесе NO деп шығарыңыз.

YES және NO сөздерін әріп регистріне қарамастан кез келген түрде шығаруға болады; мысалы, yes, Yes немесе YES бірдей жауап ретінде қабылданады.

Мысалдар

Кіріс деректер 1

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

Шығыс деректер 1

YES
NO
NO

Ескертпе

  • $1$-ші тест жиыны: тек бір ғана ережеден тұратын $\mathcal{R} = \{(\texttt{01}, \texttt{10})\}$ жиынын құрастыруға болады:
    • $1$-ші сұраным үшін $s_1 = t_1 = \texttt{010}$, сондықтан түрлендіру ешқандай операциясыз-ақ орындалады, ең аз операция қадамдарының саны $0$-ге тең.
    • $2$-ші сұраным үшін $\texttt{001}$ жолының $\texttt{01}$ суффиксін $\texttt{10}$ жолына ауыстырсақ, $1$ қадам ішінде $\texttt{010}$ алынады.
    • $3$-ші сұраным үшін $\texttt{001}$ мен $\texttt{100}$ жолдары $1$-ші орында да, $3$-ші орында да өзгеше болғандықтан, ұзындығы $2$ болатын ереженің өзімен ғана түрлендіруді $1$ қадамда аяқтау мүмкін емес; бірақ алдымен бастапқы $\texttt{001}$ жолының $\texttt{01}$ суффиксін $\texttt{10}$-ға ауыстырып $\texttt{010}$ аралық жолын алуға, содан кейін $\texttt{010}$ аралық жолының $\texttt{01}$ префиксін $\texttt{10}$-ға ауыстырып $\texttt{100}$ мақсатты жолын алуға болады, сондықтан ең аз операция қадамдарының саны $2$-ге тең.
  • $2$-ші тест жиыны: $1$ қадам ішінде $\texttt{10}$ жолын $\texttt{01}$ жолына түрлендіру үшін $\mathcal{R}$ ережелер жиынында міндетті түрде $(\texttt{10}, \texttt{01})$ ережесі болуы керек. Алайда бұл ереже енгізілген сәтте-ақ, $2$-ші сұранымда $\texttt{100}$ жолының $\texttt{10}$ префиксін $\texttt{01}$-ге ауыстыру арқылы $1$ қадамда $\texttt{010}$ алуға болады, ал бұл жадыңыздағы $d_2 = 2$ мәніне қайшы келеді.
  • $3$-ші тест жиыны: түрлендіру барысындағы барлық жолдар ұзындықтары бірдей $\texttt{01}$ жолдары болуы тиіс. Ұзындығы $1$-ге тең $\texttt{01}$ жолдарының тек $\texttt{0}$ және $\texttt{1}$ деген екі түрі ғана бар; егер $\texttt{0}$-ден $\texttt{1}$-ге түрлендіру мүмкін болса, онда міндетті түрде $(\texttt{0}, \texttt{1})$ ережесі бар және ол тек $1$ қадамда орындалады, сондықтан ең аз дегенде $2$ қадам қажет болуы мүмкін емес.

Шектеулер

Барлық тест деректері үшін $T \geqslant 1$, $n \geqslant 1$, $0 \leqslant d_i \leqslant 2$, $1 \leqslant |s_i| = |t_i|$ екендігіне және $s_i, t_i$ жолдарының тек $\texttt{0}$ мен $\texttt{1}$ таңбаларынан тұратынына кепілдік беріледі.

Бір тест жиынындағы барлық бастапқы жолдардың ұзындықтарының қосындысын $L = \sum_{i=1}^{n} |s_i|$ деп, ал бір тест файлындағы барлық тест жиындары бойынша $L$ мәндерінің қосындысын $\sum L$ деп белгілесек, $\sum L \leqslant 3\times 10^6$ болатынына кепілдік беріледі.

Бұл есепте ішкі тапсырмалардың орынды тәуелділіктері қосылған.

Ішкі тапсырма Ұпай $\sum L \leqslant$ Ерекше қасиет
$1$ $16$ $4 \times 10^3$ A
$2$ $20$ $3\times 10^6$ A
$3$ $20$ $2\times 10^4$ Жоқ
$4$ $28$ $10^5$ Жоқ
$5$ $16$ $3 \times 10^6$ Жоқ
  • A ерекше қасиеті: барлық $1 \leqslant i \leqslant n$ үшін $|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.