4
ค้นหาหมายเลขรงค์
น่าแปลกที่เรายังไม่มีความท้าทายในการระบายสีกราฟ! ด้วยกราฟที่ไม่ได้บอกทิศทางเราสามารถให้จุดสุดยอดสีแต่ละอันโดยที่ไม่มีจุดยอดสองจุดที่อยู่ติดกันใช้สีเดียวกัน จำนวนที่น้อยที่สุดχของสีที่แตกต่างกันจำเป็นเพื่อให้บรรลุนี้เรียกว่าสีจำนวนของกราฟ ตัวอย่างเช่นต่อไปนี้แสดงสีที่ถูกต้องโดยใช้จำนวนสีขั้นต่ำ: (พบใน Wikipedia) ดังนั้นจำนวนสีของกราฟนี้เป็นχ = 3 เขียนโปรแกรมหรือฟังก์ชั่นที่กำหนดจำนวนจุดยอดN <16 (ซึ่งมีหมายเลขจาก1ถึงN ) และรายการของขอบกำหนดจำนวนสีของกราฟ คุณอาจได้รับอินพุตและสร้างเอาต์พุตในรูปแบบที่สะดวกใด ๆ ตราบใดที่อินพุตไม่ได้ถูกประมวลผลล่วงหน้า นั่นคือคุณสามารถใช้สตริงหรืออาร์เรย์เพิ่มตัวคั่นที่สะดวกให้กับสตริงหรือใช้อาร์เรย์ที่ซ้อนกัน แต่ไม่ว่าคุณจะทำอะไรโครงสร้างที่แบนควรมีตัวเลขเหมือนตัวอย่างด้านล่าง (ตามลำดับเดียวกัน) คุณไม่สามารถใช้ฟังก์ชั่นที่เกี่ยวข้องกับทฤษฎีกราฟในตัว (เช่น Mathematica ChromaticNumber) คุณอาจสมมติว่ากราฟไม่มีลูป (ขอบเชื่อมต่อจุดยอดด้วยตัวเอง) ซึ่งจะทำให้กราฟไม่สามารถละลายได้ นี่คือรหัสกอล์ฟคำตอบที่สั้นที่สุด (เป็นไบต์) ชนะ ตัวอย่าง โปรแกรมของคุณจะต้องแก้ปัญหาเหล่านี้อย่างน้อยในเวลาที่เหมาะสม (ต้องแก้ไขอินพุตทั้งหมดอย่างถูกต้อง แต่อาจใช้เวลานานกว่าสำหรับอินพุตที่ใหญ่กว่า) เพื่อทำให้โพสต์สั้นลงในตัวอย่างต่อไปนี้ฉันนำเสนอขอบในรายการที่คั่นด้วยเครื่องหมายจุลภาคเดียว คุณอาจใช้ตัวแบ่งบรรทัดหรือคาดว่าอินพุตในรูปแบบอาร์เรย์ที่สะดวกหากคุณต้องการ สามเหลี่ยม (χ = 3) 3 1 2, 2 3, 1 3 "วงแหวน" ของ 6 …