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