พีชคณิต Steenrod เป็นพีชคณิตที่สำคัญที่เกิดขึ้นในโทโพโลยีพีชคณิต พีชคณิต Steenrod ถูกสร้างขึ้นโดยตัวดำเนินการที่เรียกว่า "Steenrod squares" มีอยู่หนึ่งตัวสำหรับจำนวนเต็มบวกแต่ละตัว มีพื้นฐานสำหรับพีชคณิต Steenrod ซึ่งประกอบด้วย "monomials ที่ยอมรับได้" ในการปฏิบัติการกำลังสอง มันเป็นเป้าหมายของเราในการสร้างพื้นฐานนี้
ลำดับของจำนวนเต็มบวกเรียกว่ายอมรับได้ถ้าจำนวนเต็มแต่ละค่าเป็นอย่างน้อยสองครั้งต่อไป ดังนั้นสำหรับตัวอย่างเช่น[7,2,1]
เป็นที่ยอมรับเพราะและ 1 บนมืออื่น ๆ ที่[3,2]
ไม่ได้เป็นที่ยอมรับเพราะ 2 (ในโทโพโลยีเราจะเขียนสำหรับลำดับ[7,2,1]
)
ศึกษาระดับปริญญาของลำดับคือผลรวมของรายการมันของ ดังนั้นสำหรับตัวอย่างเช่นการศึกษาระดับปริญญาของ[7,2,1]
เป็น 10 ส่วนเกินของลำดับที่ยอมรับเป็นองค์ประกอบแรกลบรวมขององค์ประกอบที่เหลือเพื่อให้[7,2,1]
มีส่วนเกิน 4
งาน
จงเขียนโปรแกรมที่ใช้คู่ของจำนวนเต็มบวกได้(d,e)
และผลชุดของลำดับที่ยอมรับทุกระดับและส่วนเกินที่น้อยกว่าหรือเท่ากับd
e
เอาต์พุตเป็นชุดดังนั้นลำดับของลำดับที่ยอมรับได้ไม่สำคัญ
ตัวอย่าง:
Input: 3,1
Output: [[2,1]]
นี่เรากำลังมองหาลำดับที่ยอมรับด้วย 3. รวมมีสองตัวเลือก, และ[3]
[2,1]
( [1,1,1]
และ[1,2]
มีผลรวม 3 แต่ไม่สามารถยอมรับได้) ส่วนเกินของ[3]
คือ 3 และส่วนที่เกินจาก[2,1]
เป็น 1 ดังนั้นลำดับเท่านั้นที่มีส่วนเกิน[2,1]
คือ
Input: 6, 6
Output: [[6], [5, 1], [4, 2]] (or any reordering, e.g., [[5,1],[4,2],[6]])
เนื่องจากส่วนเกินนั้นน้อยกว่าหรือเท่ากับระดับเราจึงไม่มีสภาพส่วนเกิน ดังนั้นเราเพียงแค่พยายามที่จะหาลำดับที่ยอมรับทั้งหมดของการศึกษาระดับปริญญา 6. ตัวเลือกที่มี[6]
, และ[5, 1]
[4, 2]
(สิ่งเหล่านี้มีส่วนเกิน , และ )
Input: 10, 5
Output: [[7,3], [7,2,1], [6,3,1]]
ลำดับที่ยอมรับได้ของระดับ 10 คือ:
[[10], [9,1], [8,2], [7,3], [7,2,1], [6,3,1]]
สิ่งเหล่านี้มีส่วนเกิน , , , , , และตามลำดับดังนั้นสามงานสุดท้ายทั้งหมด
เกณฑ์การให้คะแนน
นี่คือรหัสกอล์ฟ: ทางออกที่สั้นที่สุดในการชนะไบต์
กรณีทดสอบ:
การเรียงลำดับใหม่ของเอาต์พุตใด ๆ ก็ดีเช่นกันดังนั้นสำหรับอินพุต(3, 3)
เอาต์พุต[[3],[2,1]]
หรือ[[2,1],[3]]
ยอมรับได้อย่างเท่าเทียมกัน (อย่างไรก็ตาม[[1,2],[3]]
ไม่ใช่)
Input: 1, 1
Output: [[1]]
Input: 3, 3
Output: [[2,1], [3]]
Input: 3, 1
Output: [[2,1]]
Input: 6, 6
Output: [[6], [5, 1], [4, 2]]
Input: 6, 4
Output: [[5,1], [4,2]]
Input: 6, 1
Output: []
Input: 7, 7
Output: [[7], [6,1], [4,2,1], [5,2]]
Input: 7,1
Output: [[4,2,1]]
Input: 10, 10
Output: [[10], [9,1], [7,2,1], [6,3,1], [8,2], [7,3]]
Input: 10, 5
Output: [[7,3], [7,2,1], [6,3,1]]
Input: 26, 4
Output: [15, 7, 3, 1]
Input: 26, 6
Output: [[16, 7, 2, 1], [16, 6, 3, 1], [15, 7, 3, 1], [16, 8, 2], [16, 7, 3]]