การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

12
สามเหลี่ยมที่สาม
แนวคิดนี้มาจากBIO 2017 q1 เป็นหลัก ฉันมีความคิดในการโพสต์ความท้าทายนี้จากความท้าทายลำดับของฉันเนื่องจากผู้คนจำนวนมากดูเหมือนจะชอบมัน นี่เป็นความท้าทายครั้งแรกที่ฉันโพสต์โดยไม่โพสต์บนกล่องทราย ฉันจะลบมันถ้าไม่มีใครชอบมัน กฎระเบียบ ใช้เวลาในลำดับของตัวเลขในแบบไตรภาค (ฐาน 3); สิ่งนี้อาจเป็นสตริงอาร์เรย์หรือค่าตัวเลขพร้อมกับจำนวนศูนย์ก่อนหน้า สำหรับแต่ละแถวในรูปสามเหลี่ยมแถวด้านล่างจะถูกสร้างขึ้นจนกว่าจะมีเพียงหนึ่งหลักในแถวสุดท้าย หากต้องการค้นหาตัวเลขที่ต่ำกว่าตัวเลขสองหลักอื่น ๆ ตัวเลขนั้นจะเป็นตัวเลขเดียวกันกับสองหลักด้านบนหากตัวเลขสองหลักข้างต้นเหล่านี้เท่ากัน มิฉะนั้นจะเป็นตัวเลขที่ไม่เท่ากับหนึ่งในนั้น นี่คือตัวอย่าง: 0 0 1 2 0 1 2 2 0 2 0 1 2 0 2 1 1 2 0 1 1 1 0 1 2 1 2 2 0 0 2 1 …

15
โค่นล้มโดมิโน!
ขอบคุณคำถามนี้สำหรับแรงบันดาลใจบางอย่าง ในความท้าทายนี้เราจะเป็นตัวแทนของสายของแต้มเป็นสตริงของที่|, และ/ \คุณจะได้รับสายอักขระโดมิโนเป็นอินพุตและคุณต้องพิจารณาสิ่งที่พวกเขาดูเหมือนเมื่อพวกเขาได้ตัดสิน นี่คือกฎสำหรับแต้มที่ตกลงมา โดมิโนที่ยืนอยู่|, ซ้ายของโดมิโนที่ล้มลงทางซ้าย\, จะกลายเป็นโดมิโนที่ล้มลงด้วยเช่นกัน โดมิโนที่ยืนอยู่|ด้านขวาของโดมิโนที่ถูกตก/จะกลายเป็นโดมิโนที่ตกลงมาอย่างถูกต้องเช่นกัน หากโดมิโนยืนอยู่ระหว่างซ้าย\และขวาตก/โดมิโนมันจะยังคงยืนอยู่ กฎเหล่านี้จะถูกนำมาใช้ซ้ำ ๆ จนกระทั่งข้อตกลงไม่เปลี่ยนแปลงอีกต่อไป นี่คือตัวอย่างของวิธีการป้อนข้อมูลเดียวอาจมาถึงข้อสรุปของมัน |||||||\/|||||||\||\|||/||||||\||||| ||||||\\//|||||\\|\\|||//||||\\||||| |||||\\\///|||\\\\\\|||///||\\\||||| ||||\\\\////|\\\\\\\|||////\\\\||||| |||\\\\\////|\\\\\\\|||////\\\\||||| ||\\\\\\////|\\\\\\\|||////\\\\||||| |\\\\\\\////|\\\\\\\|||////\\\\||||| \\\\\\\\////|\\\\\\\|||////\\\\||||| งานของคุณคือการเขียนโค้ดที่ค้นหาและแสดงผลลัพธ์สุดท้ายของอินพุต คุณอาจสมมติว่าอินพุตนั้นถูกต้องเสมอและมีอย่างน้อย 2 ตัวอักษร นี่คือcode-golfดังนั้นคำตอบจะได้คะแนนเป็นไบต์ด้วยจำนวนไบต์ที่น้อยกว่าจะดีกว่า กรณีทดสอบ |||/|||| -> |||///// |||\|||| -> \\\\|||| |/||||\| -> |///\\\| ||/|||\| -> ||//|\\| ||\|||/| -> \\\|||//

19
นี่เป็นหมายเลขที่ต่อเนื่องกันหรือมีค่าคงที่หรือไม่?
เมื่อไม่นานมานี้ฉันได้ดูการแยกตัวประกอบเฉพาะ 27000: 27000 = 2 3 × 3 3 × 5 3 มีสองสิ่งที่พิเศษเกี่ยวกับที่: นายก - ต่อเนื่อง : ช่วงเวลาที่ต่อเนื่องกัน: 2 คือนายก 1, 3 คือนายกที่ 2, 5 คือนายกรัฐมนตรีที่ 3 ค่าคงที่เลขชี้กำลัง : เลขชี้กำลังจะเหมือนกันสำหรับทุก ๆ ช่วงที่สำคัญ (เสมอ 3) แสดงทางคณิตศาสตร์: จำนวนเต็มxเป็นจำนวนนายกต่อเนื่อง / คงที่เลขชี้กำลังหากมีจำนวนเต็มบวกอย่างเคร่งครัดn , k , mซึ่งx = p n m × p n +1 …

10
การบีบอัดพลังงานปรมาณูอิออน
นี่คือความท้าทายในการบีบอัดประเภทอื่น ในความท้าทายที่ซับซ้อน kolmogorovปกติคุณจะต้องสร้างรายการใหม่ทั้งหมด ที่นี่คุณได้รับอนุญาตให้ปัดเศษค่าในแบบที่คุณต้องการ ของจับอะไร คะแนนของคุณถูกลงโทษตามความผิดพลาดของคุณ ที่ด้านล่างของคำถามนี้คือรายการพลังงานไอออนไนซ์แรกสำหรับองค์ประกอบ 108 รายการแรก โปรแกรมของคุณเมื่อประมวลผลควรส่งออกสำเนาที่ถูกต้องตามสมควรของรายการนี้ จะไม่มีอินพุตหรืออาร์กิวเมนต์ เพื่อวัตถุประสงค์ในการให้คะแนนผลลัพธ์ของคุณควรถูกกำหนดไว้ (ผลลัพธ์เดียวกันทุกครั้ง) รูปแบบผลลัพธ์ โปรแกรม / ฟังก์ชั่นของคุณจะต้องแสดงรายการ 108 หมายเลขเรียงตามลำดับการเพิ่มหมายเลขอะตอม รายการนี้สามารถอยู่ในรูปแบบที่เหมาะสม ข้อมูลแหล่งข้อมูลด้านล่างมีให้ในลำดับที่ถูกต้องตั้งแต่ไฮโดรเจนจนถึงฮัสเซียม เกณฑ์การให้คะแนน คะแนนของคุณจะเป็นความยาวของโปรแกรมเป็นไบต์บวกกับการปัดเศษ มีการคำนวณค่าปรับปัดเศษสำหรับแต่ละองค์ประกอบและสรุปยอดรวมที่ให้โทษ 11.81381ตัวอย่างเช่นลองมาจำนวน 11.81299999สมมติว่าโปรแกรมของคุณเอาท์พุทค่าไม่ถูกต้องของ ครั้งแรกที่ทั้งตัวเลขจะถูกคูณด้วยอำนาจเดียวกันของ 10 1181381, 1181299.999เช่นว่ามีไม่มีจุดทศนิยมในมูลค่าที่แท้จริง: ศูนย์ต่อท้ายในมูลค่าที่แท้จริงถือว่ามีความสำคัญ 81.001จากนั้นความแตกต่างแน่นอนจะนำไปตรวจสอบข้อผิดพลาดแน่นอน: สุดท้ายเราคำนวณบทลงโทษขององค์ประกอบนี้max(0, log10(err * 4 - 1)) -> 2.50921ดังนี้ สูตรนี้ถูกเลือกเพื่อให้ข้อผิดพลาด <0.5 ไม่มีโทษ (เนื่องจากคำตอบนั้นถูกต้องภายในการปัดเศษ) ในขณะที่ให้โอกาสแบบ asymptotic 50% ที่การปัดเศษจำนวนทศนิยมให้กับตำแหน่งทศนิยมใด ๆ จะให้ประโยชน์สุทธิในคะแนน …

3
แก้ไขหมายเลขที่หายไปแล้ว
พื้นหลัง: ฉันโพสต์คำถามนี้เมื่อคืนที่แล้วและได้รับฟันเฟืองในความไม่ชัดเจน ฉันได้ปรึกษากับบุคลากรหลายคนเกี่ยวกับไม่เพียง แต่ถ้อยคำของปัญหา แต่ยังรวมถึงความซับซ้อนของมัน (ซึ่งไม่ใช่ O (1)) ปัญหาการเขียนโปรแกรมนี้เป็นความชั่วร้ายในคำถามสัมภาษณ์ของอเมซอน คำถาม: รับสตริงของจำนวนเต็ม concatenated สุ่ม [0, 250), 0 ถึง 250 เอกสิทธิ์มีหมายเลขหนึ่งหายไปในลำดับ งานของคุณคือการเขียนโปรแกรมที่จะคำนวณจำนวนที่หายไปนี้ ไม่มีตัวเลขที่ขาดหายไปอื่น ๆ ในลำดับนอกเหนือจากสิ่งนี้และนั่นคือสิ่งที่ทำให้ปัญหานี้ยากและอาจคำนวณได้ยาก การทำปัญหานี้ด้วยมือกับสตริงขนาดเล็กเช่นตัวอย่างที่ 1 และ 2 ด้านล่างนั้นง่ายมาก ในทางกลับกันการคำนวณตัวเลขที่ขาดหายไปในชุดข้อมูลที่มีขนาดใหญ่อย่างเหลือเชื่อซึ่งเกี่ยวข้องกับตัวเลขสามหลักหรือสี่หลักนั้นยากอย่างไม่น่าเชื่อ แนวคิดเบื้องหลังปัญหานี้คือการสร้างโปรแกรมที่จะทำขั้นตอนนี้ให้คุณ ข้อมูลสำคัญ: สิ่งหนึ่งที่ดูเหมือนจะค่อนข้างสับสนเมื่อฉันโพสต์ปัญหานี้เมื่อคืนคือ: จำนวนที่ขาดหายไปนั้นถูกกำหนดให้เป็น ตัวเลขที่ขาดหายไปคือตัวเลขที่อยู่ภายในช่วงที่ระบุข้างต้น ไม่จำเป็นต้องเป็นตัวเลข ในตัวอย่างที่ 3 คุณจะเห็นว่าจำนวนที่หายไปคือ 9 แม้ว่าจะปรากฏในลำดับ มี 3 สถานที่ที่ DIGIT 9 จะปรากฏในซีรีย์ [0, 30):“ 9”,“ 19” …

15
ลำดับของตัวเลขที่มีอยู่ในตัวเอง
ลองกำหนดตัวเลขที่มีอยู่ในตัวเองเป็นจำนวนเต็มบวกซึ่งตัวเลขจะปรากฏเป็นจำนวนความยาวเท่ากับตัวเองเท่านั้น ในคำอื่น ๆ ใด ๆ ทศนิยมหลักd (ไม่รวม0 ) เกิดขึ้นเฉพาะในการทำงานของความยาวตรงd งาน คุณสามารถเลือกหนึ่งในสามวิธีที่แสดงด้านล่าง: รับจำนวนเต็มnส่งออกตัวเลขที่มีอยู่ในตัวของn th (0 หรือ 1-indexed) รับจำนวนเต็มnส่งออกตัวเลขn ที่มีอยู่ในตัวแรก พิมพ์ลำดับไปเรื่อย ๆ ตัวอย่าง 133322เป็นตัวเลขที่อยู่ในตัวเองเพราะ3ปรากฏขึ้นในระยะสาม3 's, 1คือเดียวและ2เกิดขึ้นในการทำงานของทั้งสอง2 ' s ในทางกลับกัน35553355ไม่ใช่เพราะแม้ว่า5และ3เกิดขึ้นห้าและสามครั้งตามลำดับพวกเขาไม่ได้เรียกใช้ตัวเลขที่อยู่ติดกัน 44422ไม่ได้อยู่ในตัวเองเพราะ4เกิดขึ้นเพียงสามครั้ง 12222333ไม่ได้เป็นอย่างใดอย่างหนึ่งเพราะ2ปรากฏขึ้นในระยะสี่2 's และไม่สามารถจะถือว่าเป็นสองวิ่งแยกจากกันของทั้งสอง2 ' s ไม่น่าแปลกใจนี่คือOEIS A140057และคำศัพท์สองสามคำแรกคือ: 1, 22, 122, 221, 333, 1221, 1333, 3331, 4444, 13331, 14444, 22122, 22333, 33322, 44441, …

22
การตรวจสอบงูสัตว์เลี้ยง ASCII แนวนอน
เมื่อไม่นานมานี้มีสัตว์เลี้ยงงู ASCII สองตัวที่ท้าทาย (เช่นที่นี่ ) 0 0 0 0 0 000 00 0 00 000 0 0 000 0 0 0 00 0 000 ความท้าทายนี้คือการนำงูสัตว์เลี้ยงแนวนอนที่สร้างขึ้นแบบสุ่ม (ความสูงห้าบรรทัดความยาว 30) และตรวจสอบว่า: แต่ละคอลัมน์มีเพียงหนึ่งเดียว 0 แต่ละอัน0จะ "เชื่อมต่อ" กับ0ก่อนและหลัง (เว้นระยะแนวตั้งด้วย 0 หรือ 1 บรรทัดเท่านั้น) ผลลัพธ์สุดท้ายอาจเป็นtrueหรือ1ถ้างูนั้นถูกต้องหรือfalseหรือ0ถ้างูไม่ถูกต้อง แก้ไขชี้แจง ถือว่าอินพุต: เป็นสตริง มีเฉพาะ '', '0' และ '\ n' แต่ละบรรทัดมีอักขระ 30 …

29
เอาท์พุทเส้นทางไบนารีจากจำนวน
สำหรับจำนวนเต็มที่nพอใจn > 0เขียนค่าเป็นเส้นทางจากมากไปหาน้อยขึ้นอยู่กับการเป็นตัวแทนไบนารี กฎระเบียบ บิตชุดแรก (สำคัญที่สุด) จะอยู่ที่มุมซ้ายบนเสมอ เมื่อตั้งค่าบิตถัดไป (a 1) ให้วาดอักขระ ("เติม") บนบรรทัดถัดไปในคอลัมน์เดียวกันกับอักขระก่อนหน้าที่วาด ลองใช้ช่องว่าง ("ว่างเปล่า") เพื่อเติม แต่อักขระใด ๆ ก็ตามที่จะทำตราบใดที่มันยังคงเหมือนเดิม เมื่อบิตถัดไปไม่ได้ถูกตั้งค่า (a 0 ) ให้วาดอักขระ ("เติม") บนบรรทัดเดียวกันทางด้านขวาของอักขระก่อนหน้าที่วาดไว้ทันที รหัสของคุณจะต้องรองรับตัวเลขอย่างน้อย 20 บิตที่สำคัญ เขียนโปรแกรมเต็มฟังก์ชั่นแลมบ์ดา ฯลฯ แต่ไม่มีข้อมูลโค้ด ไม่อนุญาตให้มีช่องว่างนำหน้า (หรือ "ว่าง" ถ่าน) / บรรทัด จำนวนช่องว่างต่อท้ายใด ๆ (หรือ "ช่องว่าง" ถ่าน) / บรรทัดที่อนุญาต ยอมรับอินพุต 1D ทุกชนิด: หมายเลข, สตริง, …
22 code-golf  number 

6
สร้างลำดับเลขจำนวนเต็มสากล
คำนิยาม ลองเรียกลำดับเลขจำนวนเต็ม (อนันต์) ที่เป็นสากลถ้ามันมีลำดับเลขจำนวนเต็มทุกอันเป็นลำดับที่ต่อเนื่องกัน ในคำอื่น ๆ ลำดับจำนวนเต็ม(ก1เป็น2 , ... )เป็นสากลและถ้าหากในแต่ละลำดับจำนวนเต็ม จำกัด(ข1 , ... , ขn )มีการชดเชยkดังกล่าวว่า(กk + 1 ... เป็นk + n ) = (ข1 , ... , ขn ) ยกตัวอย่างเช่นลำดับของจำนวนเฉพาะที่เป็นค่าบวกนั้นไม่ได้อยู่ในกลุ่มเดียวกันด้วยเหตุผลดังต่อไปนี้ ไม่มีจำนวนเต็มลบ1หรือตัวเลขประกอบใด ๆ แม้ว่ามันจะมี3ก็ไม่ได้มี subsequence ที่ต่อเนื่องกัน(3, 3, 3) แม้ว่ามันจะมี2และ5ก็ไม่ได้มี subsequence ที่ต่อเนื่องกัน(2, 5) แม้ว่ามันจะมีต่อเนื่องกัน subsequence (7, 11, 13)ก็ไม่ได้มี subsequence ที่ต่อเนื่องกัน(13, 11, …

7
ส่งออกลำดับ Goodstein ที่ง่ายขึ้น
ตัวเลขจะอยู่ในรูปแบบพื้นฐาน -B ทำให้ Goodstein ง่ายขึ้นหากมันถูกเขียนเป็น b + b + ... + b + c, 0 < c ≤ b ลำดับ Goodstein แบบย่อของตัวเลขเริ่มต้นด้วยการเขียนหมายเลขในแบบฟอร์ม -1 แบบง่าย Goodstein จากนั้นแทนที่ 1 ทั้งหมดด้วย 2 และลบออก 1 เขียนผลการค้นหาในแบบฟอร์ม Goodstein แบบย่อ 2 จากนั้นแทนที่ทั้ง 2 ด้วย 3 และลบ 1 เป็นต้นจนกว่าคุณจะถึง 0 โปรแกรมของคุณคือรับค่าอินพุทและเอาท์พุทจำนวนเต็มบวก / พิมพ์ลำดับ Goodstein และยุติ โปรแกรมของคุณควรจัดการกับตัวเลขน้อยกว่า 100 …

10
ตัวเลขเริ่มต้นที่ต่ำที่สุดในลำดับที่เหมือน Fibonacci
รับอินพุตจำนวนเต็มบวกNส่งออกตัวเลขที่ไม่เป็นลบสองตัวคือaและbโดยที่<bโดยมีค่าเฉลี่ยต่ำที่สุดที่เป็นไปได้ซึ่งจะส่งผลให้ตัวเลขNเป็นส่วนหนึ่งของลำดับความสัมพันธ์ที่เกิดซ้ำ: f(0) = a f(1) = b f(n) = f(n-2)+f(n-1) ในกรณีที่มีมากกว่าหนึ่งในโซลูชั่นที่มีค่าเฉลี่ยของและBมีน้อยแล้วคุณควรเอาท์พุทหนึ่งกับต่ำสุดข คุณสามารถสมมติว่าNอยู่ในช่วงตัวแทนของจำนวนเต็มในภาษา / ระบบของคุณ กรณีทดสอบ N = 1 a = 0, b = 1 N = 15 a = 0, b = 3 N = 21 a = 0, b = 1 N = 27 a = 0, b = …

26
มันเป็นจำนวนที่น่าพอใจ?
ตัวเลขที่น่าพอใจ (ตามคำจำกัดความนี้) คือตัวเลขที่สามารถส่งผ่านกระบวนการต่อไปนี้ (ลองใช้41802000เป็นตัวอย่าง): แยกตัวเลขที่เหมือนกันต่อท้าย ( 41802000 => [41802, 000]) จัดเรียงครึ่งแรกของตัวเลขและรับค่าสูงสุด ( [41802, 000] => [8, 000]) ใช้ความยาวขององค์ประกอบสุดท้าย เรียกองค์ประกอบผลลัพธ์AและB ( [8, 000] => A=8, B=3) N B = A สำหรับจำนวนเต็มใด ๆNหรือไม่? ( Trueในตัวอย่างนี้ 2 3 = 8) หากอินพุตเป็นผลTrueมาจากกระบวนการต่อไปนี้จะถือว่าเป็นที่พอใจ งานของคุณคือการใช้จำนวนเต็มxและเอาท์พุทไม่ว่าxจะเป็นจำนวนที่ชื่นชอบ คุณสามารถแสดงค่าที่แตกต่างกันสองค่าสำหรับความจริงและเท็จ แต่โปรดระบุสิ่งที่คุณใช้ในคำตอบของคุณ xรับประกันว่าจะมีตัวเลขที่แตกต่างอย่างน้อยสองหลัก (เช่น111เป็นอินพุตที่ไม่ถูกต้อง) เช่นเดียวกับความท้าทายส่วนใหญ่คุณอาจใช้xสายอักขระหรือรายการตัวเลข นี่คือรหัสกอล์ฟเพื่อให้รหัสที่สั้นที่สุดในไบต์ชนะ กรณีทดสอบ Input Output 41802000 1 …

24
ตัวอย่างการกระจาย Pareto
การแจกแจงแบบพาเรโตเป็นการแจกแจงความน่าจะเป็นที่เกิดขึ้นตามธรรมชาติ มันมีคุณสมบัติพิเศษมากมายเช่นค่าเฉลี่ยไม่สิ้นสุด ในความท้าทายนี้คุณจะส่งออกจำนวนตัวอย่างจากการกระจายนี้ การแจกแจงแบบพาเรโต้ถูกกำหนดให้มากกว่าหรือเท่ากับxความน่าจะ1/xเป็นสำหรับทั้งหมดที่xมากกว่าหรือเท่ากับ 1 ดังนั้นตัวเลขที่สุ่มตัวอย่างจากการแจกแจงนี้มีค่ามากกว่าหรือเท่ากับ 1 ที่มีความน่าจะเป็น 1 มากกว่าหรือเท่ากับ 2 ที่มีความน่าจะเป็น 1/2 อย่างยิ่งมากกว่าหรือเท่ากับ 3 ที่มีความน่าจะเป็น 1/3 อย่างแท้จริงมากกว่าหรือเท่ากับ 11.4 ด้วยความน่าจะเป็นที่แน่นอน 1 / 11.4 และอื่น ๆ เนื่องจากคุณจะสุ่มตัวอย่างการกระจายตัวนี้โปรแกรมหรือฟังก์ชั่นของคุณจะไม่รับอินพุตและส่งออกตัวเลขสุ่มโดยมีความน่าจะเป็นข้างต้น อย่างไรก็ตามหากโปรแกรมของคุณไม่ตรงกับความน่าจะเป็นข้างต้นอย่างสมบูรณ์เนื่องจากการแสดงผลแบบอิงดัชนี ดูด้านล่างของความท้าทายสำหรับรายละเอียดเพิ่มเติม (สิ่งนี้เรียกว่าการกระจาย Pareto ที่มีอัลฟา 1 และขอบเขตที่ต่ำกว่า 1 เป็นที่แน่นอน) ตัวอย่าง 10 ตัวอย่างต่อไปนี้มาจากการแจกจ่าย: 1.1540029602790338 52.86156818209856 3.003306506971116 1.4875532217142287 1.3604286212876546 57.5263129600285 1.3139866916055676 20.25125817471419 2.8105749663695208 1.1528212409680156 สังเกตว่ามี 5 …

5
Ladybugs สมมาตร
บทนำ: เมื่อเราคิดถึง Ladybugs เรามักจะคิดถึงแมลงสีแดงหรือสีส้มเข้มที่มีจุดด่างดำ แม้ว่าสิ่งนี้ไม่จำเป็นจริงเนื่องจากมีLadybugs ด่างดำสีแดง / ส้มหรือLadybugs ที่ไม่มีจุดเลยเราจึงแสดงภาพ Ladybugs เป็นส่วนใหญ่เช่น Asian Ladybug นี้: อีกสิ่งที่ควรทราบก็คือจุดที่เกี่ยวกับ ladybugs นั้นมักจะสมมาตรอยู่เสมอ และนี่คือที่มาของความท้าทายนี้ ท้าทาย: รับจำนวนเต็มn( >= 0) ส่งออกเต่าทอง ASCII ศิลปะต่อไปนี้หนึ่งครั้งหรือหลายครั้งโดยมีจุดสมมาตรแบ่งเท่า ๆ กันระหว่างทั้งสองด้านเช่นเดียวกับ Ladybugs สองคนขึ้นไป นี่คือเลย์เอาต์ Ladybug เริ่มต้น: _V_ /(@I@)\ / | \ | | | \ | / ''-!-'' หากn=0เราแสดงผลเต่าทองด้านบนตามที่เป็นอยู่ เมื่อnมีขนาดใหญ่กว่าศูนย์เรากรอกในช่องว่างของข้อผิดพลาด ASCII ศิลปะที่มีตัวพิมพ์เล็กoหรือแทนที่ในศูนย์ที่มีทุน| Oเป้าหมายคือทำการnเปลี่ยนแปลง 'เต่าทอง' …

9
สร้างกริดไฟฟ้า
ความท้าทาย มีเมือง N อยู่ในแนวตรง เมือง i-th ตั้งอยู่A[i]กิโลเมตรไปทางขวาของแหล่งกำเนิด ไม่มีเมืองใดอยู่ในที่เดียวกัน คุณกำลังจะสร้างกริดไฟฟ้ากับโรงไฟฟ้าบางแห่ง โรงไฟฟ้าจะต้องสร้างขึ้นภายในเมือง อย่างไรก็ตามคุณได้รับอนุญาตให้สร้างKโรงไฟฟ้า (<N) เท่านั้นจึงจะมีบางเมืองที่ไม่มีโรงไฟฟ้า สำหรับเมืองที่มีโรงไฟฟ้าแต่ละไม่มีคุณต้องสร้างสายเคเบิลระหว่างมันและเมืองที่ใกล้ที่สุดที่มีโรงไฟฟ้า ตัวอย่างเช่นหากมีสามเมืองที่ตั้งอยู่0, 1, 2และมีเพียงเมืองที่0มีโรงไฟฟ้าคุณต้องสร้างสายเคเบิลสองสายหนึ่งจาก2ถึง0(2 กม.) และอีกแห่งจาก1ถึง0(1 กม.) ซึ่งมีความยาวรวม 3 กม. . ให้Kและตำแหน่งของเมือง ( A) คุณควรคำนวณกิโลเมตรขั้นต่ำของสายเคเบิลที่คุณต้องการในการสร้างตาราง ตัวอย่างผลงาน K = 1, A = [0, 2, 4, 6, 8] : 12 # build power plant in the city at position …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.