สำหรับภาพNโดยNค้นหาชุดของพิกเซลที่ไม่มีระยะห่างในการแยกมากกว่าหนึ่งครั้ง นั่นคือถ้าพิกเซลสองตัวถูกคั่นด้วยระยะทางdดังนั้นพวกเขาจะเป็นสองพิกเซลเท่านั้นที่แยกจากกันด้วยd (โดยใช้ระยะทางแบบยุคลิด ) โปรดทราบว่าdไม่จำเป็นต้องเป็นจำนวนเต็ม
ความท้าทายคือการหาชุดที่มีขนาดใหญ่กว่าคนอื่น
สเปค
ไม่จำเป็นต้องป้อนข้อมูล - สำหรับการประกวดครั้งนี้Nจะได้รับการแก้ไขที่ 619
(เนื่องจากมีคนถามกันเรื่อย ๆ - ไม่มีอะไรพิเศษเกี่ยวกับหมายเลข 619 มันถูกเลือกให้มีขนาดใหญ่พอที่จะทำให้การแก้ปัญหาที่ดีที่สุดไม่น่าเป็นไปได้และมีขนาดเล็กพอที่จะให้ภาพ N แสดงขนาดเต็มมากถึง 630 x 630 และฉันตัดสินใจที่จะไปกับนายกที่ใหญ่ที่สุดที่ไม่เกินขนาดนั้น)
เอาต์พุตเป็นรายการที่คั่นด้วยช่องว่างของจำนวนเต็ม
จำนวนเต็มแต่ละตัวในเอาต์พุตแสดงถึงหนึ่งพิกเซลที่กำหนดหมายเลขตามลำดับการอ่านภาษาอังกฤษจาก 0 ตัวอย่างเช่นสำหรับN = 3 ตำแหน่งจะถูกกำหนดหมายเลขตามลำดับนี้:
0 1 2
3 4 5
6 7 8
คุณสามารถส่งออกข้อมูลความคืบหน้าในระหว่างการทำงานหากคุณต้องการตราบใดที่ผลลัพธ์การให้คะแนนขั้นสุดท้ายนั้นสามารถทำได้ง่าย คุณสามารถส่งออกไปยัง STDOUT หรือไฟล์หรืออะไรก็ตามที่ง่ายที่สุดสำหรับการวางลงใน Stack Snippet Judge ด้านล่าง
ตัวอย่าง
N = 3
เลือกพิกัด:
(0,0)
(1,0)
(2,1)
เอาท์พุท:
0 1 5
การชนะ
คะแนนคือจำนวนตำแหน่งในเอาต์พุต จากคำตอบที่ถูกต้องซึ่งมีคะแนนสูงสุดการโพสต์ผลลัพธ์เร็วที่สุดด้วยคะแนนนั้นจะเป็นผู้ชนะ
รหัสของคุณไม่จำเป็นต้องกำหนดไว้ล่วงหน้า คุณสามารถโพสต์ผลลัพธ์ที่ดีที่สุดของคุณ
สาขาที่เกี่ยวข้องสำหรับการวิจัย
(ขอบคุณAbulafiaสำหรับลิงก์ Golomb)
แม้ว่าสิ่งเหล่านี้จะไม่เหมือนกันกับปัญหานี้ แต่ก็มีความคล้ายคลึงกันในแนวคิดและอาจให้แนวคิดเกี่ยวกับวิธีการนี้:
- ไม้บรรทัด Golomb : กรณี 1 มิติ
- สี่เหลี่ยมผืนผ้า Golomb : ส่วนขยาย 2 มิติของไม้บรรทัด Golomb ตัวแปรของกรณี NxN (สี่เหลี่ยม) ที่เรียกว่าอาร์เรย์ Costasได้รับการแก้ไขสำหรับ N ทั้งหมด
โปรดทราบว่าจุดที่จำเป็นสำหรับคำถามนี้ไม่ได้อยู่ภายใต้ข้อกำหนดเดียวกันกับสี่เหลี่ยมผืนผ้า Golomb สี่เหลี่ยมผืนผ้า Golomb ยื่นออกมาจากกล่องขนาด 1 มิติโดยกำหนดให้เวกเตอร์จากจุดหนึ่งไปยังอีกจุดหนึ่งนั้นไม่ซ้ำกัน ซึ่งหมายความว่าอาจมีจุดสองจุดคั่นด้วยระยะทาง 2 แนวนอนและจุดสองจุดคั่นด้วยระยะทาง 2 แนวตั้ง
สำหรับคำถามนี้มันเป็นระยะทางสเกลาร์ที่จะต้องไม่ซ้ำกันดังนั้นจึงไม่มีทั้งแนวนอนและแนวตั้งแยกจากกัน 2 ทุกวิธีแก้ปัญหาสำหรับคำถามนี้จะเป็นรูปสี่เหลี่ยมผืนผ้า Golomb แต่ไม่ใช่ทุกรูปสี่เหลี่ยมผืนผ้า Golomb จะเป็นคำตอบที่ถูกต้อง คำถามนี้.
ขอบเขตบน
เดนนิสชี้ให้เห็นอย่างเป็นประโยชน์ในการแชทว่า 487 นั้นเป็นคะแนนที่สูงกว่าและให้การพิสูจน์:
ตามรหัส CJam ของฉัน (
619,2m*{2f#:+}%_&,
) มี 1,888 หมายเลขเฉพาะที่สามารถเขียนเป็นผลรวมของกำลังสองของจำนวนเต็มสองจำนวนระหว่าง 0 และ 618 (รวมทั้งสองอย่าง) n พิกเซลต้องใช้ระยะทางที่ไม่ซ้ำกัน n (n-1) / 2 ระหว่างกัน สำหรับ n = 488 ที่ให้ 118828
ดังนั้นจึงมีความยาวต่างกันที่เป็นไปได้ 118,800 พิกเซลระหว่างพิกเซลที่เป็นไปได้ทั้งหมดในภาพและการวางพิกเซลสีดำ 488 พิกเซลจะส่งผลให้มีความยาว 118,828 พิกเซลซึ่งทำให้เป็นไปไม่ได้สำหรับพวกเขาทั้งหมดที่จะไม่ซ้ำกัน
ฉันสนใจมากที่จะได้ยินว่าใครมีหลักฐานของขอบเขตบนที่ต่ำกว่านี้
ลีดเดอร์บอร์ด
(คำตอบที่ดีที่สุดจากผู้ใช้แต่ละคน)