พื้นหลัง
Alice และ Bob เล่นเกมที่เรียกว่าสร้างคำไบนารี ในการเล่นเกมที่คุณแก้ไขความยาวn >= 0
, ชุดG
ของ length- n
คำไบนารีที่เรียกว่าชุดเป้าหมายและ length- n
สตริงt
ที่มีตัวอักษรA
และB
ที่เรียกว่าคำสั่งเปิด เกมเป็นเวลาn
ผลัดกันและในทางกลับกันi
ผู้เล่นที่กำหนดโดยเลือกบิตt[i]
w[i]
เมื่อเกมสิ้นสุดลงผู้เล่นจะดูคำฐานสองที่w
พวกเขาสร้าง หากพบคำนี้ในชุดเป้าหมายG
อลิซชนะเกม มิฉะนั้นบ๊อบชนะ
ยกตัวอย่างเช่นการแก้ไขให้ของn = 4
, และG = [0001,1011,0010]
อลิซได้รับการเปิดครั้งแรกและเธอเลือกt = AABA
เปิดสองยังเป็นของอลิซและเธอเลือกw[0] = 0
บ๊อบมีการเปิดสามและเขาเลือกw[1] = 0
ในการเลี้ยวโค้งสุดท้ายอลิซเลือกw[2] = 0
w[3] = 1
คำที่เป็นผลลัพธ์0001
ถูกพบในG
ดังนั้นอลิซชนะเกม
ตอนนี้ถ้าบ๊อบเลือกw[2] = 1
อลิซอาจเลือกw[3] = 0
ในรอบสุดท้ายของเธอและยังคงชนะ นั่นหมายความว่าอลิซสามารถชนะเกมได้ไม่ว่าบ็อบจะเล่นอย่างไร ในสถานการณ์เช่นนี้อลิซมีกลยุทธ์ชนะ กลยุทธ์นี้สามารถมองเห็นได้เป็นต้นไม้ไบนารีที่มีป้ายกำกับซึ่งแยกตามระดับที่สอดคล้องกับตาของบ๊อบและทุกสาขามีคำจากG
:
A A B A
-0-0-0-1
\
1-0
อลิซแสดงตามกิ่งไม้ที่ตาเธอ ไม่ว่าสาขาไหนที่บ๊อบเลือกอลิซก็ชนะในที่สุด
อินพุต
คุณจะได้รับเป็น input ยาวn
และชุดG
เป็นรายการที่ (อาจจะเป็นที่ว่างเปล่า) n
ของสตริงที่มีความยาว
เอาท์พุต
ผลลัพธ์ของคุณคือรายการคำสั่งซื้อที่อลิซมีกลยุทธ์ในการชนะซึ่งเทียบเท่ากับการดำรงอยู่ของต้นไม้ไบนารีตามที่อธิบายไว้ข้างต้น คำสั่งซื้อของเทิร์นนั้นไม่สำคัญ แต่ต้องห้ามซ้ำซ้อน
กฎรายละเอียด
คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น ในกรณีของโปรแกรมคุณสามารถเลือกตัวคั่นสำหรับอินพุตและเอาต์พุต แต่ต้องเหมือนกันสำหรับทั้งสองโปรแกรม จำนวนไบต์ที่สั้นที่สุดชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต
กรณีทดสอบ
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]
สนุกกับความเป็นจริง
จำนวนการสั่งซื้อทางกลับกันในการส่งออกคือมักจะเท่ากับจำนวนของคำในชุดประตู
11101
สองครั้ง ความจริงก็ยังคงสนุกสำหรับชุด Zgarb อาจข้อมูลประกอบด้วยองค์ประกอบที่ซ้ำกันหรือเป็นข้อผิดพลาดหรือไม่?