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$. في كل مرة يتم فيها إدخال زوج من سلاسل $\texttt{01}$ غير الفارغة والمتساوية في الطول $(s, t)$ إلى الآلة، تُخرج الآلة أقل عدد من خطوات العمليات اللازمة لتحويل $s$ إلى $t$، أو تُبلغ بعدم وجود حل.

تتذكر أنك أدخلت سابقًا إلى هذه الآلة $n$ من أزواج سلاسل $\texttt{01}$ غير الفارغة والمتساوية في الطول $(s_1, t_1), (s_2, t_2), \dots, (s_n, t_n)$. ومن باب المصادفة، في ذاكرتك، لم يكن لكل استعلام حل فحسب، بل كان يحقق أيضًا أن أقل عدد من خطوات العمليات هو $d_i \leqslant 2$.

للتحقق مما إذا كان هناك خلل في ذاكرتك، يرجى تحديد ما إذا كانت توجد مجموعة قواعد $\mathcal{R}$ تجعل المخرجات الفعلية للآلة لهذه المدخلات الـ $n$ متطابقة تمامًا مع ذاكرتك.

الإدخال

يحتوي السطر الأول على عدد صحيح موجب $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{01}$ في $\texttt{001}$ بـ $\texttt{10}$، نحصل على $\texttt{010}$ في خطوة $1$.
    • بالنسبة للاستعلام رقم $3$، بما أن $\texttt{001}$ و$\texttt{100}$ تختلفان في كلٍّ من الموضع رقم $1$ والموضع رقم $3$، فلا يمكن لقاعدة طولها $2$ وحدها إتمام التحويل في خطوة $1$؛ ولكن يمكن أولًا استبدال اللاحقة $\texttt{01}$ للسلسلة الابتدائية $\texttt{001}$ بـ $\texttt{10}$ للحصول على السلسلة الوسيطة $\texttt{010}$، ثم استبدال البادئة $\texttt{01}$ للسلسلة الوسيطة $\texttt{010}$ بـ $\texttt{10}$ للحصول على السلسلة الهدف $\texttt{100}$، ولذلك فإن أقل عدد من خطوات العمليات هو $2$.
  • حالة الاختبار رقم $2$: لكي يتم تحويل $\texttt{10}$ إلى $\texttt{01}$ في خطوة $1$، يجب أن تحتوي مجموعة القواعد $\mathcal{R}$ على القاعدة $(\texttt{10}, \texttt{01})$. غير أنه بمجرد تضمين هذه القاعدة، لن يحتاج الاستعلام رقم $2$ إلا إلى استبدال البادئة $\texttt{10}$ في $\texttt{100}$ بـ $\texttt{01}$ للحصول على $\texttt{010}$ في خطوة $1$، وهو ما يتناقض مع $d_2 = 2$ في ذاكرتك.
  • حالة الاختبار رقم $3$: يجب أن تكون جميع السلاسل أثناء عملية التحويل سلاسل $\texttt{01}$ متساوية الطول. لا توجد سوى سلسلتين من نوع $\texttt{01}$ بطول $1$ هما $\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|$ مجموع أطوال جميع السلاسل الابتدائية في حالة اختبار مفردة، وليكن $\sum L$ مجموع قيم $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.