Module: Doğru Parantez Sırası (RSP)


Problem

4 /6


PSP üretimi

Theory Click to read/hide

Doğru parantez dizilerinin oluşturulması, kontrolün yapılma şeklini doğrudan takip eder - doğruluğu bozmadan yeni parantezler eklememiz yeterlidir. Bu özyinelemeli yineleme ile yapılır. Onu tanımıyorsanız - BE... ah, hayır, daha fazla okuyarak anlamaya çalışabilirsiniz. İşte bir parantez türü için bir kod örneği:
 

#include <vector>
#include <iostream>

kullanarak ad alanı std;
int n; // Yarım uzunluk 
vektör<char> cevap; // Cevabımız 

void rec(int bakiye) {
if (ans.size() == 2 * n) { // Varsa, biz bitti 
için (int i = 0; i < 2 * n; i++)
cout " ";
cout "\n";
}
if (ans.size() + balance + 2 <= n * 2) { // Kontrol edin, biz yeni açılış parantezini kapatmamızı sağlayacağız 
// Şimdi dikkat edin: her sekans için ayrı bir vektör yapmamıza gerek yok 
ans.push_back('(');
rec(bakiye + 1);
ans.pop_back(); // Bunu anlamak için özyinelemeye dikkat etmeniz gerekir. Önce vektöre bir parantez ekliyoruz ve ardından tüm bu kodu tekrar çalıştırıyoruz. 
// Yani, eğer yapabilirsek tekrar bir parantez ekleyin. 
// Ve bu, özyinelemeden ayrılmaya başlayana, yani istenen uzunluğa ulaşana kadar devam edecek. 
// Ardından parantezler kaldırılmaya başlayacak. Bunu anlıyorsan - seni tebrik ediyorum, harikasın. 
}
if (balance > 0) { // Bir parantezi kapatabilirsek kapatıyoruz. 
ans.push_back(')');
rec(bakiye - 1);
ans.pop_back();
}
}

 int ana()
{
cin>> N;
tavsiye(0);

    dönüş 0;
}
Ve şimdi zorluklar zamanı - birkaç parantez türü için algoritmayı KENDİNİZE yazmanız gerekecek! Muahahahahahahahahahahahaha!

Problem

British Sciences, Inc.'in en yenilikçi gelişimi tilde-omega-lambda hesabı kullanılarak çözülebilen herhangi bir problem için bir çözüm bulmanın bir yoludur (yani hiçbiri için). Bunu yapmak için, x uzunluğundaki olası tüm parantez dizilerini gözden geçirirler; burada x, şirketin birçok geliştirmesinde kullanılan gizli bir sabitin ilk basamağıdır. x tek ise ona bir eklerler. Daha sonra terimleri bulmak için nöro-linguistik programlama ve Fibonacci hesaplı Googold Katalan sayıları kullanan gelişmiş algoritmalar kullanırlar. Ancak bu algoritmalar zaten uygulandı ve patentlendi. 

Göreviniz yineleme algoritmasını uygulamaktır. 


Girdi
Giriş, gizli sabitin ilk basamağıdır - x (\(1 <= x <= 9\)).  ;
 

Çıktı
x (veya \(x \% 2 ==1\ ise x+1) uzunluğundaki tüm açıklıkların çıktısını almanız gerekir. ) sözlük sırasına göre.

 

Örnekler
# Girdi Çıktı
1 1
( )
[ ]
{}