QOJ.ac

QOJ

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

#3293. التقسيمات الممتازة

Statistics

إذا أمكن تقسيم سلسلة إلى الصورة $AABB$، حيث $A$ و$B$ سلسلتان كيفيتان غير فارغتين، فإننا نسمي هذا التقسيم للسلسلة تقسيمًا ممتازًا.

مثلًا، للسلسلة aabaabaa، إذا وضعنا $A=\mathtt{aab}$ و$B=\mathtt{a}$، نجد طريقة لتقسيم هذه السلسلة إلى $AABB$.

قد لا يكون للسلسلة أي تقسيم ممتاز، وقد يكون لها أكثر من تقسيم ممتاز. فمثلًا، إذا وضعنا $A=\mathtt{a}$ و$B=\mathtt{baa}$، أمكن أيضًا تمثيل السلسلة السابقة بالصورة $AABB$؛ أما السلسلة abaabaa فليس لها تقسيم ممتاز.

تُعطى الآن سلسلة $S$ طولها $n$، ونريد حساب العدد الإجمالي للتقسيمات الممتازة من بين جميع طرق تقسيم جميع سلاسلها الجزئية. والمقصود بالسلسلة الجزئية هنا مقطع متصل من السلسلة.

يجب الانتباه إلى ما يلي:

  1. نعد السلاسل الجزئية المتطابقة الواقعة في مواضع مختلفة سلاسل جزئية مختلفة، وتُحسب تقسيماتها الممتازة كلها في الإجابة.
  2. يُسمح بأن يكون $A=B$ في التقسيم. فمثلًا، للسلسلة cccc التقسيم $A=B=\mathtt{c}$.
  3. السلسلة نفسها إحدى سلاسلها الجزئية.

الإدخال

ملف الإدخال هو excellent.in.

يحتوي كل ملف إدخال على عدة حالات اختبار. يحتوي السطر الأول من الملف على عدد صحيح واحد $T$، وهو عدد الحالات. ويُضمن أن $1\le T\le10$.

يحتوي كل من الأسطر الـ $T$ التالية على سلسلة $S$ مؤلفة فقط من أحرف إنجليزية صغيرة، ومعناها كما ورد في وصف المسألة.

الإخراج

ملف الإخراج هو excellent.out.

أخرج $T$ أسطر، يحتوي كل منها على عدد صحيح يمثل عدد التقسيمات الممتازة الإجمالي من بين جميع تقسيمات جميع السلاسل الجزئية للسلسلة $S$.

أمثلة

الإدخال 1

4
aabbbb
cccccc
aabaabaabaa
bbaabaababaaba

الإخراج 1

3
5
4
7

ملاحظة

نستخدم $S[i,j]$ للدلالة على السلسلة الجزئية من الحرف رقم $i$ إلى الحرف رقم $j$ من السلسلة $S$ (ويبدأ الترقيم من $1$).

في حالة الاختبار الأولى، توجد ثلاث سلاسل جزئية لها تقسيمات ممتازة:

$S[1,4]=\mathtt{aabb}$، وتقسيمها الممتاز هو $A=\mathtt{a}$ و$B=\mathtt{b}$؛

$S[3,6]=\mathtt{bbbb}$، وتقسيمها الممتاز هو $A=\mathtt{b}$ و$B=\mathtt{b}$؛

$S[1,6]=\mathtt{aabbbb}$، وتقسيمها الممتاز هو $A=\mathtt{a}$ و$B=\mathtt{bb}$.

ولا توجد تقسيمات ممتازة لبقية السلاسل الجزئية، لذا فإن إجابة الحالة الأولى هي $3$.

في حالة الاختبار الثانية، توجد فئتان تضمان إجمالًا أربع سلاسل جزئية لها تقسيمات ممتازة:

للسلاسل الجزئية $S[1,4]=S[2,5]=S[3,6]=\mathtt{cccc}$ التقسيم الممتاز نفسه، وهو $A=\mathtt{c}$ و$B=\mathtt{c}$. لكن لأن مواضع هذه السلاسل الجزئية مختلفة، يجب احتسابه ثلاث مرات؛

أما السلسلة الجزئية $S[1,6]=\mathtt{cccccc}$ فلها تقسيمان ممتازان: $A=\mathtt{c}$ و$B=\mathtt{cc}$، و$A=\mathtt{cc}$ و$B=\mathtt{c}$. وهما تقسيمان مختلفان للسلسلة الجزئية نفسها، ويجب احتسابهما كليهما في الإجابة.

لذلك فإن إجابة الحالة الثانية هي $3+2=5$.

في حالة الاختبار الثالثة، لكل من $S[1,8]$ و$S[4,11]$ تقسيمان ممتازان، و$S[1,8]$ هي المثال الوارد في وصف المسألة؛ لذا فإن الإجابة هي $2+2=4$.

في حالة الاختبار الرابعة، لكل من $S[1,4]$ و$S[6,11]$ و$S[7,12]$ و$S[2,11]$ و$S[1,8]$ تقسيم ممتاز واحد، وللسلسلة $S[3,14]$ تقسيمان ممتازان؛ لذا فإن الإجابة هي $5+2=7$.

المثال 2

انظر الملفين excellent/excellent2.in وexcellent/excellent2.ans في مجلد المتسابق.

المثال 3

انظر الملفين excellent/excellent3.in وexcellent/excellent3.ans في مجلد المتسابق.

المهام الفرعية

لجميع حالات الاختبار، يُضمن أن $1\le T\le10$. وتنطبق القيود التالية على حالة إدخال واحدة؛ أي إن جميع حالات الإدخال الـ $T$ في حالة الاختبار نفسها تحقق القيود.

نفترض أن $n$ هو طول السلسلة $S$، ويرد النطاق التفصيلي للبيانات لكل حالة اختبار في الجدول التالي:

أرقام حالات الاختبار $n$ قيود أخرى
$1,2$ $\le300$ جميع أحرف $S$ متطابقة
$3,4$ $\le2000$ جميع أحرف $S$ متطابقة
$5,6$ $\le10$ لا توجد
$7,8$ $\le20$ لا توجد
$9,10$ $\le30$ لا توجد
$11,12$ $\le50$ لا توجد
$13,14$ $\le100$ لا توجد
$15$ $\le200$ لا توجد
$16$ $\le300$ لا توجد
$17$ $\le500$ لا توجد
$18$ $\le1000$ لا توجد
$19$ $\le2000$ لا توجد
$20$ $\le30000$ لا توجد

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.