Arka fon
Alice ve Bob , ikili bir kelime oluşturmak için bir oyun oynarlar . Oyunu oynamak için, bir uzunluğa düzeltmek n >= 0
, bir dizi G
uzunluk- ait n
adlandırılan ikili bir deyişle hedef seti ve bir uzunluk- n
dize t
harfleri içeren A
ve B
denilen, dönüş sırası . Oyun n
sırayla sürer ve sırayla i
, tarafından tanımlanan oyuncu t[i]
biraz seçer w[i]
. Oyun bittiğinde oyuncular w
inşa ettikleri ikili kelimeye bakarlar . Bu kelime gol setinde bulunursa G
Alice oyunu kazanır; aksi halde Bob kazanır.
Örneğin, düzeltme izin n = 4
, G = [0001,1011,0010]
ve t = AABA
. Alice ilk dönüşü alır ve seçer w[0] = 0
. İkinci tur da Alice'inki ve o seçiyor w[1] = 0
. Bob üçüncü turu seçer ve seçer w[2] = 0
. Son dönüşte Alice seçer w[3] = 1
. Ortaya çıkan kelime, 0001
içinde bulunur G
, bu yüzden Alice oyunu kazanır.
Şimdi, Bob seçseydi w[2] = 1
, Alice w[3] = 0
son dönüşünde seçebilirdi ve hala kazanabilirdi. Bu, Alice'in Bob nasıl oynanır olursa olsun oyunu kazanabileceği anlamına gelir. Bu durumda Alice'in kazanma stratejisi vardır . Bu strateji, Bob'un dönüşlerine karşılık gelen seviyelerde dallanan ve her dalında bir kelime bulunan etiketli bir ikili ağaç olarak görselleştirilebilir G
:
A A B A
-0-0-0-1
\
1-0
Alice sıradaki dalları takip ederek oynar; Bob hangi dalı seçerse seçsin, Alice sonunda kazanır.
Giriş
Size uzunluk n
ve giriş G
dizesi (muhtemelen boş) uzunluk dizeleri listesi olarak verilir n
.
Çıktı
Çıktınız, Alice'in kazanma stratejisine sahip olduğu, yukarıda açıklandığı gibi ikili bir ağacın varlığına eşdeğer olan sıra emirlerinin listesidir. Dönüş emirlerinin sırası önemli değildir, ancak kopyalar yasaktır.
Ayrıntılı Kurallar
Tam bir program veya işlev yazabilirsiniz. Bir program durumunda, giriş ve çıkış için sınırlayıcıyı seçebilirsiniz, ancak her ikisi için de aynı olmalıdır. En kısa bayt sayısı kazanır ve standart boşluklara izin verilmez.
Test Durumları
3 [] -> []
3 [000,001,010,011,100,101,110,111] -> [AAA,AAB,ABA,ABB,BAA,BAB,BBA,BBB]
4 [0001,1011,0010] -> [AAAA,BAAA,AABA]
4 [0001,1011,0010,0110,1111,0000] -> [AAAA,BAAA,ABAA,BBAA,AABA,AAAB]
5 [00011,00110,00111,11110,00001,11101,10101,01010,00010] -> [AAAAA,BAAAA,ABAAA,BBAAA,AABAA,AAABA,BAABA,AAAAB,AABAB]
Eğlenceli Gerçek
Çıktıdaki dönüş sırası sayısı, her zaman hedef kümesindeki kelime sayısına eşittir.
11101
iki kez listelenir ; eğlenceli gerçek hala setler için geçerli. Zgarb, giriş yinelenen öğeler içerebilir mi, yoksa bu bir hata mıydı?