ฉันแน่ใจว่าทุกคนเคยเห็นมาก่อนถ้วยนั้นสามารถวางซ้อนกันเป็นปิรามิด (และรูปทรงอื่น ๆ ):
A
A A A
A A A A A
A A A A A A A A
ใช่A
เป็นตัวละครที่เพียงพอที่จะเป็นตัวแทนของถ้วย
สามารถเพิ่มถ้วยใหม่ได้ทั้งบนพื้นดินทางด้านขวาของโครงสร้างหรือบนถ้วยที่อยู่ติดกันสองถ้วย นี่คือโครงสร้างข้างต้นอีกครั้ง แต่จุดที่มีอยู่ทั้งหมดสำหรับถ้วยใหม่ถูกทำเครื่องหมายด้วย_
:
_ A
A A A
A _ _ A A A A
A A A A A A A A _ _ _
สมมติว่าเราต้องการสร้างหุ่นยนต์ที่สามารถประกอบกองถ้วยเหล่านี้ หุ่นยนต์จะเข้าใจคำแนะนำง่ายๆสองข้อในการจัดการโครงสร้างดังกล่าว
a
: เพิ่มถ้วยใหม่ในจุดแรกที่มีอยู่ในลำดับการอ่านจากซ้ายไปขวา(นั่นคือสแกนแถวจากบนลงล่างซ้ายไปขวาจนกว่าคุณจะพบจุดที่มีอยู่จากนั้นวางถ้วยตรงนั้น) ตัวอย่างข้างต้นจะกลายเป็น:A A A A A A A A A A A A A A A A A A
r
: นำถ้วยแรกออกจากลำดับการอ่านจากซ้ายไปขวา ตัวอย่างข้างต้นจะกลายเป็น:A A A A A A A A A A A A A A A A
ปรากฎว่าโครงสร้างใด ๆ ที่สามารถสร้างขึ้นจากศูนย์โดยใช้เพียงสองการดำเนินงาน เช่น
A
A A A
A A A A A
สามารถสร้างขึ้นด้วยลำดับของคำแนะนำ
aaaaaaaaaaaarrrrraa
ตัวอย่างที่ใหญ่กว่าสามารถสร้างโดยใช้
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrrrrraaaaaaarr
นี่คือสิ่งที่ยิ่งใหญ่กว่า:
A
A A A
A A A A A A A
A A A A A A A A A A A A
A A A A A A A A A A A A A A A
ซึ่งสามารถสร้างด้วย
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrraaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrraaaaaaaaaaaaaarrrrrrrrrrraaaaaaaa
หมายเหตุ:หากจุดบนพื้นเป็นอิสระจากคำแนะนำในการกำจัดพวกเขาจะถูกนำมาใช้ซ้ำก่อนที่จะวางถ้วยทางด้านขวาของถ้วยที่มีอยู่ทั้งหมด เช่น
aaaarrra
จะให้ผลผลิต
A A
ไม่
A A
คุณสามารถนึกถึงพื้นดินว่าอยู่ด้านบนของถ้วยกึ่งไม่มีที่สิ้นสุด
ความท้าทาย
รับโครงสร้างของถ้วยซ้อนให้ส่งคืนลำดับที่แสดงถึงคำแนะนำในการสร้างโครงสร้างนี้ คะแนนหลักของคุณคือผลรวมของจำนวนคำสั่งสำหรับกรณีทดสอบที่มีให้ที่ด้านล่าง ในกรณีที่มีการเสมอกัน (ซึ่งน่าจะเป็นเพราะฉันเชื่อมั่นว่าเป็นทางออกที่ดีที่สุดที่มีประสิทธิภาพเป็นไปได้) ทางออกที่สั้นที่สุดชนะ
นี่คือรายละเอียดเพิ่มเติมเกี่ยวกับกฎ:
- คุณอาจสันนิษฐานว่าไม่มีช่องว่างนำหน้าในแถวล่างของอินพุตดังนั้นจุดพื้นซ้ายสุดสำหรับถ้วยที่ใช้เสมอ
- คุณอาจสมมติว่ามีช่องว่างต่อท้ายในจำนวนที่สมเหตุสมผล (ไม่มีช่องว่างช่องว่างหนึ่งช่องเบาะสี่เหลี่ยมมุมฉากเป็นสี่เหลี่ยมมุมฉากที่มีช่องว่างท้ายเดียว)
- คุณอาจเลือกที่จะคาดหวังว่าอินพุตจะสิ้นสุดในบรรทัดขึ้นบรรทัดใหม่
- คุณสามารถเลือกอักขระ ASCII ที่พิมพ์ได้สองตัว (0x20 ถึง 0x7E, รวม) แทน
A
และเว้นวรรค (กฎเกี่ยวกับช่องว่างจากนั้นโอนไปยังอักขระที่คุณเลือก) - เอาต์พุตของคุณควรมีอักขระที่แตกต่างกันเพียงสองตัวเท่านั้นที่เป็นตัวแทนของการดำเนินการ (คุณสามารถเลือกอักขระอื่นที่ไม่ใช่
a
และr
) คุณสามารถเลือกที่จะพิมพ์ขึ้นบรรทัดใหม่ขึ้นบรรทัดเดียว - รหัสของคุณจะต้องสามารถแก้ปัญหากรณีทดสอบด้านล่างนี้ในเวลาน้อยกว่าหนึ่งนาทีบนเดสก์ท็อปพีซีที่สมเหตุสมผล (ถ้าใช้เวลาสองนาทีในการขุดฉันจะให้ประโยชน์แก่คุณด้วยความสงสัย แต่ถ้าใช้สิบครั้งฉันจะชนะ 't - ฉันเชื่อว่าอัลกอริทึมที่ดีที่สุดเป็นไปได้ซึ่งจะแก้ปัญหาใด ๆ ของพวกเขาในเวลาน้อยกว่าหนึ่งวินาที)
- คุณต้องไม่ปรับรหัสของคุณให้เหมาะสมกับกรณีทดสอบแต่ละรายการ (เช่นการเข้ารหัสด้วยตนเอง) หากฉันสงสัยว่ามีใครทำเช่นนั้นฉันขอสงวนสิทธิ์ในการเปลี่ยนแปลงกรณีทดสอบ
คุณสามารถใช้สคริปต์ CJam นี้สำหรับการดำเนินการย้อนกลับ: มันจะใช้สายของคำแนะนำการสร้างและพิมพ์สแต็คที่เกิดขึ้นของถ้วย (ขอบคุณเดนนิสสำหรับการเขียนตัวอย่างใหม่และเร่งความเร็วอย่างมาก)
Sp3000 ยังได้จัดเตรียมสคริปต์ Python ทางเลือกนี้เพื่อจุดประสงค์เดียวกัน
กรณีทดสอบ
หลังการทดสอบแต่ละครั้งจะมีตัวเลขแสดงจำนวนคำสั่งที่เหมาะสมที่สุดตามคำตอบของ Ell
A
A A
A A A
A A A A
A A A A A
A A A A A A
A A A A A A A
A A A A A A A A
A A A A A A A A A
A A A A A A A A A A
A A A A A A A A A A A
A A A A A A A A A A A A
A A A A A A A A A A A A A
A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
820
A
A A
A A A
A A A A
A A A A A
A A A A A A
A A A A A A A
A A A A A A A A
A A A A A A A A A A
A A A A A A A A A A A A
A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
1946
A
A A
A A A
A A A A
A A A A A
A A A A A A
A A A A A A A
A A A A A A A A
A A A A A A A A A A
A A A A A A A A A A A A
A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
2252
A A
A A A A
A A A A A A
A A A A A A A A
A A A A A A A A A A
A A A A A A A A A A A A
A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
9958
A A
A A A A
A A A A A A
A A A A A A A A
A A A A A A A A A A
A A A A A A A A A A A A
A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
5540
A A A A A A A A A A A A A A A A A A A A
10280
A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
10320
A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
5794
A
A A
A A A
A A A A A
A A A A A A A
A A A A A A A A A A
A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
3297
A A
A A A
A A A A
A A A A A
A A A A A A
A A A A A A A
A A A A A A A A
A A A A A A A A A
A A A A A A A A A A A
A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
4081
A
A A A A
A A A A A A A A A
A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
4475
A
A A A A A A A A
A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
5752
นั่นหมายความว่าคะแนนที่ดีที่สุดคือ64,515คำแนะนำ