Giriş
Krallığının vergilerini yönetmekle ilgili bir sıkıntı yaşayan bir vergi tahsildarı var: tarihi kayıtlar büyük bir yangında yanmış.
Mevcut paranın nereden devralındığı açısından kaç olası geçmiş olabileceğini öğrenmek istiyor. Neyse ki, krallığı çok basit.
Krallık, l
parayı devralmış birini temsil eden ve olmayan bir kişiyi temsil eden bir 2D boole matrisi ile modellenebilir O
. Örneğin:
l O l l
O O O l
l O l O
O O O l
(Her zaman bir dikdörtgen olacaktır)
Gelecek nesilde, krallık daha küçüktür (kurtlar güçlüdür!).
Bir sonraki nesil, bir önceki nesle bindirilmiş gibi görünecektir ( x
gelecek nesilde bir soyundan gelen bir yer tutucudur)
l O l l
x x x
O O O l
x x x
l O l O
x x x
O O O l
Bir soyundan çevrelerindeki doğrudan olan atalarının bakacağız (sol üst Yani x
göreceksiniz { l
, O
, O
, O
}, bir adlandırılan Hizalanmamış dikdörtgen mahalle )
Eğer sadece bir atadan miras kalmışsa, soyundan onlardan para miras kalır. Birden fazla ata para miras almışsa, kavga eder ve soyundan gelen kişi parayı devralmaz. Hiç kimse para miras almazsa, soyundan gelen kimse parayı devralmaz.
(Birden fazla torun bir atadan miras alabilir)
Yani, yeni nesil şöyle görünecekti:
l l O
l l O
l l O
Meydan okuma
Giriş
İç dizilerin hepsinin aynı uzunlukta olduğu iki farklı değerin dizilerinden oluşan bir dizi olarak jenerasyonun mevcut durumu.
Örneğin, yukarıdaki örnek için şunlar olabilir:
[
[True, True, False],
[True, True, False],
[True, True, False]
]
Çıktı
Sonraki neslin girdi olduğu benzersiz önceki nesillerin sayısını temsil eden bir tam sayı.
Cevabın her zaman 2 ^ 30-1'den daha az olacağını varsayabilirsiniz. (Veya 1073741823).
Önceki nesle "preimage" denecek ve bu zorluk ön görüntüleri saymak olacaktır .
puanlama
Bu bir hızlı kod Bu nedenle, her gönderim bilgisayarımda test edilecek ve en az zaman alan gönderim kazanan olacaktır.
Örnek Giriş ve Çıkış
( 1
Parayı miras alan bir torun nerede ve 0
parayı miras almamış bir torun nerede )
Giriş:
[[1, 0, 1],
[0, 1, 0],
[1, 0, 1]]
Çıktı:
4
Giriş:
[[1, 0, 1, 0, 0, 1, 1, 1],
[1, 0, 1, 0, 0, 0, 1, 0],
[1, 1, 1, 0, 0, 0, 1, 0],
[1, 0, 1, 0, 0, 0, 1, 0],
[1, 0, 1, 0, 0, 1, 1, 1]]
Çıktı:
254
Giriş:
[[1, 1, 0, 1, 0, 1, 0, 1, 1, 0],
[1, 1, 0, 0, 0, 0, 1, 1, 1, 0],
[1, 1, 0, 0, 0, 0, 0, 0, 0, 1],
[0, 1, 0, 0, 0, 0, 1, 1, 0, 0]]
Çıktı:
11567