ต้นไม้หารสกอร์ที่ชื่นชอบเป็นต้นไม้แห่งหารของใส่n
ว่าสำหรับจำนวนคอมโพสิตใด ๆm
มีสองโหนดเด็กที่มีคู่ของตัวหารที่ใกล้เคียงกับรากที่สองm
ของ โหนดซ้ายควรจะเป็นตัวหารขนาดเล็กและโหนดที่เหมาะสมควรจะเป็นตัวหารขนาดใหญ่ของm
m
จำนวนเฉพาะในต้นไม้ไม่ควรมีโหนดลูก ต้นไม้ของคุณอาจอยู่ในรูปแบบของข้อความหรือรูปภาพ กฎสำหรับการส่งออกข้อความศิลปะมีดังนี้
กฎการเว้นวรรค
ในการเว้นช่องว่างของโหนดบนต้นไม้เรามีกฎต่อไปนี้:
- โหนดที่ระดับความลึกที่กำหนดจากรูทควรอยู่ในบรรทัดข้อความเดียวกันในเอาต์พุต
/ \ Not / \ / \ / 3 2 3 2
- สำหรับโหนดด้านซ้ายสาขาที่เข้ามาควรจะอยู่ทางด้านขวาบนหากโหนดนั้นเป็นตัวเลขหลักเดียวมิฉะนั้นจะอยู่เหนือหลักสุดท้าย ตัวอย่าง:
/ และ / 3 720
- สำหรับโหนดที่ถูกต้องสาขาที่เข้ามาควรจะอยู่ทางด้านซ้ายบนหากโหนดนั้นเป็นตัวเลขหลักเดียวมิฉะนั้นจะอยู่เหนือหลักแรก ตัวอย่าง:
\ AND \ 7 243
- สำหรับสาขาซ้ายออกสาขาควรเริ่มต้นหนึ่งช่องทางด้านซ้ายของหมายเลข ตัวอย่าง:
275 / 11
- สำหรับสาขาด้านขวาขาออกสาขาควรเริ่มต้นหนึ่งช่องทางด้านขวาของหมายเลข ตัวอย่าง:
275 \ 25
- ใด ๆ ที่สองโหนดในระดับเดียวกันของต้นไม้ควรมีอย่างน้อยสองช่องว่างระหว่างพวกเขา ในเวลาเดียวกันทรีย่อยสองอันในระดับเดียวกันของทรีควรมีช่องว่างน้อยที่สุดระหว่างที่เป็นไปได้
ต้นไม้นี้ใช้งานไม่ได้เพราะต้นไม้ย่อย ** อยู่ใกล้เกินไป 504 / \ / \ / \ / \ 21. 24 / \ / \ / \ / \ 3 7. 4 6 . / \ / \ .2 2 2 3 ในขณะที่ต้นไม้ต้นนี้มีพื้นที่เพียงพอระหว่างกิ่งของมัน 504 / \ / \ / \ / \ / \ 21 ... 24 / \ ... / \ / \ ... / \ 3 7 ... 4 6 ... / \ / \ ... 2 2 2 3
- หากทรีย่อยสองอันอยู่ติดกันบนต้นไม้มากเกินไปพวกมันสามารถแยกออกจากกันได้โดยการเพิ่มกิ่งอีกแถวหนึ่ง
/\
ลงในต้นไม้ที่อยู่เหนือพ่อแม่
441 / \ แถวสุดท้ายยังไม่ได้กรอกและเรามีพื้นที่ว่างหมดแล้ว 21 21 / \ / \ เพิ่มสาขาอีกแถว 441 / \ เกือบ แต่ 7 และ 3 อยู่ใกล้กันมากเกินไป / \ อีกหนึ่งแถวควรทำ 21 21 / \ / \ 3 7 3 7 เพิ่มสาขาอีกแถว 441 / \ และเราเสร็จแล้ว / \ / \ 21 21 / \ / \ 3 7 3 7
ตัวอย่าง
เป็นตัวอย่างแบบเต็มทรีของตัวหาร 24 จะมีลักษณะเช่นนี้:
24
/ \
/ \
4 6
/ \ / \
2 2 2 3
4 และ 6 เป็นคู่ของตัวหารที่อยู่ใกล้กับสแควร์รูทของ 24. 4 อยู่ทางซ้ายเพราะมันเล็กกว่า ในบรรทัดถัดไปหมายเลข 2 ทางซ้ายของ 3 เพราะเล็กกว่า
ต้นไม้ตัวหารสำหรับ 63 ควรมีลักษณะดังนี้:
63 and NOT like this 63
/ \ / \
7 9 3 21
/ \ / \
3 3 7 3
ในต้นไม้ที่ไม่ถูกต้อง 3 และ 21 ไม่ใช่คู่ของตัวหารที่อยู่ใกล้กับรากที่สองของ 63 และ 3 และ 7 ไม่ได้เรียงอย่างถูกต้อง แม้ว่าการจัดวางสาขาในวันที่ 21 นั้นถูกต้องแล้ว
สำหรับ 42 คุณควรมี:
42 and NOT 42
/ \ / \
6 7 21 2
/ \ / \
2 3 3 7
ลองดูที่ 720 โปรดทราบว่าเราต้องการสาขาห้าระดับ720
เพื่อให้ระยะห่าง24
และ30
subtrees ถูกต้อง นอกจากนี้ทราบว่า24
และ30
มีสองระดับของสาขาเพราะ4
และ6
มีโหนดเด็กที่ต้องการระยะห่างที่ถูกต้องและโหนดเด็กของความต้องการที่จะอยู่ในระดับเดียวกับโหนดเด็ก30
24
720
/ \
/ \
/ \
/ \
/ \
24 30
/ \ / \
/ \ / \
4 6 5 6
/ \ / \ / \
2 2 2 3 2 3
ความท้าทาย
- งานของคุณคือการสร้างแผนภูมิตัวหารที่ชื่นชอบการเว้นระยะอย่างถูกต้องสำหรับอินพุต
n
ซึ่งn
เป็นจำนวนเต็มบวกมากกว่า 1 - ผลลัพธ์ของคุณอาจมีช่องว่างนำหน้าและต่อท้ายและขึ้นบรรทัดใหม่นำหน้าและต่อท้าย แต่จะต้องสอดคล้องกับกฎการเว้นวรรคที่ระบุไว้ด้านบน
- เอาต์พุตของคุณได้รับอนุญาตให้เป็น: text art, รูปภาพ (รูปแบบอื่น ๆ ที่จะเพิ่มหากจำเป็น)
- สำหรับรูปภาพตรวจสอบให้แน่ใจว่าโหนดของต้นไม้ของคุณเว้นระยะห่างกันและโหนดที่ความสูงเดียวกันในต้นไม้นั้นมีความสูงเท่ากันในรูปภาพ
- นี่คือรหัสกอล์ฟ จำนวนไบต์ที่น้อยที่สุด (หรือเทียบเท่า) จะชนะ
ขอขอบคุณ Stewie Griffin ที่คิดถึงแนวคิดนี้และขอขอบคุณ Peter Taylor Martin Ender, Mego และEᴀsᴛᴇʀʟʏ I many ที่ให้ความช่วยเหลือในการเขียนข้อกำหนดใหม่ ตามปกติข้อเสนอแนะหรือการแก้ไขจะได้รับการชื่นชมมาก ขอให้โชคดีและการเล่นกอล์ฟที่ดี!
กรณีทดสอบเพิ่มเติม:
2
4
/ \
2 2
20
/ \
4 5
/ \
2 2
323
/ \
17 19
362880
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
/ \
576 630
/ \ / \
/ \ / \
/ \ / \
/ \ / \
/ \ / \
/ \ / \
24 24 21 30
/ \ / \ / \ / \
/ \ / \ / \ / \
4 6 4 6 3 7 5 6
/ \ / \ / \ / \ / \
2 2 2 3 2 2 2 3 2 3
1286250
/ \
/ \
/ \
/ \
/ \
1050 1225
/ \ / \
/ \ / \
/ \ / \
30 35 35 35
/ \ / \ / \ / \
5 6 5 7 5 7 5 7
/ \
2 3