งาน:
พิจารณาปัญหา: "ให้กระดานหมากรุกหายไปหนึ่งสี่เหลี่ยมจัตุรัสตัดมันเป็น 21 L-triominoes" มีหลักฐานเชิงสร้างสรรค์ที่รู้จักกันดีว่าสิ่งนี้สามารถทำได้สำหรับกระดานหมากรุกสี่เหลี่ยมขนาดใดก็ได้ที่มีกำลังสอง มันทำงานได้โดยการแยกกระดานหมากรุกออกเป็นกระดานหมากรุกขนาดเล็กที่มีรูอยู่ในนั้นและ Triomino ตัวใหญ่หนึ่งตัวจากนั้นสังเกตว่า Triomino นั้นสามารถตัดออกเป็นสี่ส่วนได้แบบเรียกซ้ำ
ในงานนี้คุณจะต้องตัดกระดานหมากรุกขนาด 8x8 ไปเป็นรูปสามเหลี่ยม L และจากนั้นให้สีพวกเขาด้วยสี่สีเพื่อให้ไม่มีสามคนที่อยู่ติดกันมีสีเดียวกัน
รายละเอียด:
ข้อมูลที่คุณป้อนคือตำแหน่งของหลุมซึ่งให้เป็นจำนวนเต็มคู่ คุณสามารถเลือกอันใดอันหนึ่งเป็นดัชนีคอลัมน์และอันไหนคือดัชนีแถว คุณสามารถเลือกได้ว่าการเริ่มต้นแต่ละครั้งที่ 0 หรือที่ 1 และอยู่ห่างจากมุมใดบ้าง คุณอาจต้องใช้ A .. H เป็นพิกัดแรกแทน 0..7 หรือ 1..8 นอกจากนี้คุณยังสามารถยอมรับพิกัดทั้งสองที่บรรจุเป็นจำนวนเต็มเดียว 0..63 หรือ 1..64 ตามลำดับพจนานุกรม (แถวหลักหรือคอลัมน์ใหญ่จากซ้ายไปขวาหรือขวาไปซ้ายขึ้นไปขึ้นหรือลง) คุณสามารถเขียนโปรแกรมเต็มหรือฟังก์ชั่น
คุณสามารถส่งออกเรียงเป็น ASCII, เป็นสี ASCII หรือเป็นกราฟิกดั้งเดิม หากคุณเลือกเอาต์พุต ASCII คุณสามารถเลือกอักขระ ASCII ที่พิมพ์ได้สี่ตัวเพื่อแสดงสี่สี หากคุณเลือก ASCII แบบสีคุณสามารถเลือกอักขระ ASCII ที่พิมพ์ได้สี่ตัวหรือเลือกอักขระอื่นที่ไม่ใช่ช่องว่าง ช่องจะต้องแสดงโดยอักขระช่องว่าง หากตัวละครตัวใดตัวหนึ่งของคุณเป็นตัวอักษรเว้นวรรคไม่มี triomino อยู่ติดกับหลุมหรือที่ขอบกระดานหมากรุกอาจเป็นสีนี้
หากคุณเลือกสี ASCII หรือเอาต์พุตกราฟิกคุณสามารถเลือกสีสี่สีจาก # 000, # 00F, # 0F0, # 0FF, # F00, # F0F, # FF0, #FFF หรือเทียบเท่าที่ใกล้เคียงที่สุดในสภาพแวดล้อมของคุณ หากคุณเลือกเอาต์พุตกราฟิกกราฟิกดั้งเดิมของคุณจะต้องเติมสี่เหลี่ยมอย่างน้อย 32x32 พิกเซลและคั่นด้วยสีอื่นไม่เกินสองพิกเซล ถ้าข้างต้นเกินความละเอียดหน้าจอของสภาพแวดล้อมของคุณข้อกำหนดขนาดต่ำสุดจะถูกย่อให้เป็นขนาดสี่เหลี่ยมจัตุรัสที่ใหญ่ที่สุด
คุณสามารถเลือกการเรียงกระดานหมากรุกที่ถูกต้องได้ คุณสามารถเลือกสีสี่สีที่คุณเลือกได้ ตัวเลือกสี่สีของคุณจะต้องเหมือนกันในทุกเอาต์พุต แต่คุณไม่จำเป็นต้องใช้ทุกสีในทุก ๆ เอาท์พุท
ตัวอย่าง:
เอาต์พุตที่เป็นไปได้สำหรับอินพุต = [0, 0] (มุมซ้ายบน)
#??##??
##.?#..?
?..#??.#
??##.?##
##?..#??
#.??##.?
?..#?..#
??##??##
เอาต์พุตอื่นที่เป็นไปได้ของโปรแกรมเดียวกัน (อินพุต = [0, 7]):
??#??#?
?##?##??
..xx..xx
.?x#.?x#
??##??##
..xx..xx
.?x#.?x#
??##??##
โปรแกรมที่แตกต่างกันอาจผลิตสำหรับการป้อนข้อมูลของ "D1" (หมายเหตุการปฐมนิเทศกระดานหมากรุกที่ไม่เป็นมาตรฐาน แต่ได้รับอนุญาต)
AABBCCAA
ACBACBAC
CCAABBCC
ABBAADD
AABDABDC
BBDDBBCC
BABBACAA
AABAACCA