Module: تسلسل القوس الصحيح (PRS)


Problem

4 /6


جيل PSP

Theory Click to read/hide

يتم إنشاء تسلسلات الأقواس الصحيحة مباشرة من الطريقة التي يتم بها الفحص - نحتاج فقط إلى إضافة أقواس جديدة دون الإخلال بالصحة. يتم ذلك عن طريق التكرار العودي. إذا كنت لا تعرفه - كن ... آه ، لا ، يمكنك محاولة الفهم من خلال قراءة المزيد. إليك نموذج رمز لنوع واحد من الأقواس:
نبسب ؛

 # include & lt؛ vector & gt؛ 
 # include & lt؛ iostream & gt؛ 

 باستخدام   مساحة الاسم  std؛
 int  // نصف الطول 
متجه & lt؛  char  & gt؛ الجواب.  // إجابتنا 

 باطل  rec ( int  الرصيد) {
 إذا  (ans.size () == 2 * n) { // إذا كان الأمر كذلك ، فنحن تم 
 لـ  ( int  i = 0؛ i & lt؛ 2 * n؛ i ++)
كوت & lt؛ & lt؛ الجواب [i] & lt؛ & lt؛  & quot؛ & quot؛ ؛
كوت & lt؛ & lt؛  & quot؛ \ n & quot؛ ؛
}
 إذا  (ans.size () + الرصيد + 2 & lt؛ = n * 2) { // تحقق ، نحن سوف نجعلها تغلق قوس الافتتاح الجديد 
 // الآن راقب يديك: لسنا بحاجة إلى إنشاء متجه منفصل لكل تسلسل 
ans.push_back ( & # 39؛ (& # 39 ؛ )؛
rec (الرصيد + 1) ؛
ans.pop_back () ،  // لفهم هذا ، يجب أن تكون على دراية بالتكرار. أولاً ، نضيف قوسًا إلى المتجه ، ثم ننفذ كل هذه الشفرة مرة أخرى. 
 // أي ، أضف قوسًا مرة أخرى ، إذا استطعنا. 
 // وسيحدث هذا حتى نبدأ في ترك العودية - أي حتى نصل إلى الطول المطلوب. 
 // ثم ستبدأ إزالة الأقواس. إذا فهمت هذا - أهنئك ، فأنت رائع. 
}
 إذا  (الرصيد & gt؛ 0) { // إذا كان بإمكاننا إغلاق قوس ، فإننا نغلقه. 
ans.push_back ( & # 39؛) & # 39 ؛ )؛
rec (الرصيد - 1) ؛
ans.pop_back () ،
}
}

  int  main ()
{
سينما & GT ؛ & GT. ن؛
rec (0) ؛

     إرجاع  0؛
}
والآن وقت الصعوبات - سيتعين عليك كتابة الخوارزمية لعدة أنواع من الأقواس بنفسك! مهاهاهاهاهاهاهاهاهاهاهاهاهاهاهاهاهاهاهاهاهاهاهاهاهاهاها!

Problem

التطوير الأكثر ابتكارًا لشركة British Scientists، Inc. هي طريقة لإيجاد حل لأي مشكلة يمكن حلها باستخدام حساب التيلدا-أوميغا-لامدا (أي بدون أي شيء). للقيام بذلك ، يمرون بجميع تسلسلات الأقواس الممكنة ذات الطول x ، حيث يمثل x الرقم الأول من الثابت السري المستخدم في العديد من عمليات تطوير الشركة. إذا كان x غريبًا ، فإنهم يضيفون واحدًا إليه. ثم يستخدمون خوارزميات متقدمة باستخدام البرمجة اللغوية العصبية وحساب Fibonacci أرقام Googold Catalan لتحديد المصطلحات. ولكن تم بالفعل تنفيذ هذه الخوارزميات وحصلت على براءة اختراع.

مهمتك هي تنفيذ خوارزمية التكرار.


إدخال
الإدخال هو الرقم الأول من الثابت السري - x ( \ (1 & lt؛ = x & lt؛ = 9 \) ). & nbsp ؛
على & nbsp؛

الإخراج
تحتاج إلى إخراج جميع نطاقات الطول x (أو x + 1 إذا كان \ (x \٪ 2 == 1 \) ) بترتيب معجمي.

نبسب ؛

أمثلة <الجسم>
# إدخال الإخراج
1 1
()
[]
{}