รับพีระมิดเพิ่มเติมพิจารณาว่าจะสามารถแก้ไขได้ พีระมิดนอกจากนี้ยังประกอบด้วยชั้นซึ่งแต่ละคนมีหนึ่งหมายเลขน้อยกว่าหนึ่งด้านล่าง ชั้นเป็นสัญลักษณ์เป็นP_iเป็นชั้นฐานและเป็นชั้นบนP_iจำนวนวันของจะแสดงเป็นj} เป็นจำนวนซ้ายสุดของและเป็นจำนวนไปทางขวาของj} คุณอาจเห็นภาพอยู่ด้านบนของและอยู่ตรงกลางดังนั้นชื่อ "การเติมพีระมิด "
- นั่นคือทุกหมายเลขในพีระมิดเป็นจำนวนเต็มบวกที่ไม่เป็นศูนย์
- นั่นคือทุกหมายเลขที่ไม่ได้อยู่บนชั้นฐานของพีระมิดคือผลรวมของ ตัวเลขสองตัวข้างล่างนี้
- หากมีตัวเลขมีหมายเลขจึงเป็นจำนวนขวาสุดของP_iในแง่ที่ง่ายกว่าแต่ละเลเยอร์มีหนึ่งหมายเลขน้อยกว่าเลเยอร์ด้านล่าง
ปริศนานอกจากพีระมิด เป็นปิรามิดนอกจากนี้ยังมีตัวเลขบางที่ถูกลบ (แทนที่ด้วย ) วิธีแก้ปัญหาคือการเพิ่มพีระมิดโดยที่นั่นคือตัวเลขที่มีอยู่เดิมในปริศนามี ถูกทิ้งให้ไม่เปลี่ยนแปลง ปริศนาดังกล่าวอาจมีทางออกมากกว่าหนึ่งข้อ
งานของคุณคือการเพิ่มตัวต่อปริศนาปิรามิดเพื่อตรวจสอบว่ามันมีทางออกเดียวหรือไม่
อินพุต
คุณสามารถรับอินพุตในฟอร์มใด ๆ ต่อไปนี้ แต่ต้องสอดคล้องกัน:
- อาร์เรย์ของเลเยอร์
- อาเรย์ของเลเยอร์มีรูปร่างเหมือนพีระมิดโดยใช้ค่าที่ไม่เป็นบวก - จำนวนเต็มที่สอดคล้องกันเป็นตัวคั่นระหว่างองค์ประกอบ (ใช้เพียงครั้งเดียวในแต่ละครั้ง) เช่นเดียวกับการเติมด้านซ้ายและขวา ตัวคั่นและช่องว่างภายในจะต้องเหมือนกัน
- อาร์เรย์ของเลเยอร์ที่มีการเติมด้านขวาหรือซ้ายที่ถูกต้องสอดคล้องกัน (คุณต้องสอดคล้องและไม่ผสมการผสมด้านขวาและซ้ายในกรณีนี้)
โปรดทราบว่าจะต้องใช้ค่าที่สอดคล้องกันซึ่งไม่ใช่จำนวนเต็มบวกอย่างเคร่งครัดเพื่อแสดงตัวเลขที่ขาดหายไป ค่านี้ไม่สามารถใช้เป็นช่องว่างภายใน นอกจากนี้คุณยังสามารถนำเลเยอร์ที่ต่อกัน (คุณยังสามารถแยกพวกมันออกได้) และการเรียงลำดับอาจมาจากฐานไปยังด้านบนหรือจากด้านบนสู่ฐาน
เอาท์พุต
หนึ่งในสองค่าที่แตกต่างที่สอดคล้องกันโดยที่หนึ่งแสดงถึงการมีอยู่ของโซลูชันที่ไม่ซ้ำกันและอีกอย่างหนึ่งคือการขาดโซลูชันหรือการมีมากกว่าหนึ่งโซลูชัน
กฎระเบียบ
- จะเป็นจริงเสมอถ้านั่นคืออินพุตรับประกันได้ว่าจะไม่มีตัวเลขอยู่ด้านบนของตัวเลขอีกสองตัวที่ไม่ใช่ผลรวมของพวกเขาหากรู้ตัวเลขทั้งสาม
- นั่นคือปิรามิดจะมีหมายเลขที่รู้จักอย่างน้อยหนึ่งหมายเลข
- ไม่ทำสิ่งเหล่านี้
- นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดชนะ! อย่างไรก็ตามอย่าปล่อยให้สิ่งนี้กีดกันคุณไม่ให้โพสต์โซลูชันเพียงเพราะภาษาของคุณ "เกินไป"
กรณีทดสอบ
อาร์เรย์กับชั้นจากด้านบนไปยังฐานที่ใช้สำหรับกรณีทดสอบนี้มี0
ตัวแทน.
[[10], [0, 0], [0, 2, 0], [0, 0, 0, 1]] -> True
[[32], [0, 0], [0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]] -> True
[[0], [1, 1]] -> True
[[1], [0, 0]] -> False
[[10], [5, 5], [2, 3, 2], [0, 0, 0, 0]] -> False
[[5], [0, 0], [0, 0, 0]] -> False
ตัวอย่างการทำงาน
กรณีทดสอบใช้งานได้ที่นี่
ทางออกเฉพาะ 1
ขั้นตอนที่ 1: 1
ขั้นตอนที่ 2: 2
ขั้นตอนที่ 3: 4
ขั้นตอนที่ 4: 6
ขั้นตอนที่ 5-6 คล้ายกับ 4
ดังนั้นที่นี่เรามีทางออกที่เป็นเอกลักษณ์ของเรา
ทางออกเฉพาะ 2
ขั้นตอนที่ 1: ไม่มีแนวทางที่ชัดเจนที่นี่ดังนั้นลองใช้ค่าต่ำสุดที่เป็นไปได้
ขั้นตอนที่ 2-5: ดูเหมือนว่าผลลัพธ์ขั้นต่ำจะทำให้เกิดโซลูชันดังนั้นนี่จึงเป็นโซลูชันเดียวและไม่ซ้ำกัน
คำแนะนำ: มีทฤษฎีบทเกี่ยวกับการเพิ่มปริศนาปิรามิดที่เกี่ยวข้องกับปริศนานี้ที่คุณสามารถพิสูจน์ได้ว่าคุณคิดหนักพอ
ทางออกเฉพาะ 3
นี่เป็นทางออกที่ไม่เหมือนใคร
ไม่มีวิธีแก้ปัญหา 1
ไม่มีวิธีแก้ปัญหา 2
โซลูชันที่ไม่ซ้ำกัน
สองวิธี:
เนื่องจากมีวิธีแก้ไขปัญหาอย่างน้อยสองวิธีจึงไม่มีวิธีแก้ปัญหาเฉพาะ