คำถามติดแท็ก code-golf

Code-golf เป็นการแข่งขันเพื่อแก้ไขปัญหาเฉพาะในส่วนที่น้อยที่สุดของซอร์สโค้ด

1
Bootloader golf: Brainf ***
สร้าง bootloader ที่รันโปรแกรม Brainfuck ที่กำหนด นี่คือโค้ดกอล์ฟดังนั้นโปรแกรมที่มีจำนวนไบต์น้อยที่สุดจะเป็นผู้ชนะ เป็น bootloader ขนาดของโปรแกรมจะถูกนับเป็นไบต์ที่ไม่เป็นศูนย์ในรหัสที่คอมไพล์ brainfuck 30000 8-bit ล้นเซลล์ พอยน์เตอร์แรปทับ หมายเหตุบางประการเกี่ยวกับการทำงาน: ต้องอ่านอินพุตในลักษณะที่สนับสนุนอักขระ ASCII ที่พิมพ์ได้ทั้งหมดอย่างถูกต้อง การกดแป้นอื่น ๆ อาจแทรกตัวอักษรใดก็ได้หรือไม่ทำอะไรเลย การอ่านอินพุตของผู้ใช้จะต้องเป็นตัวอักษรบัฟเฟอร์ไม่ใช่บัฟเฟอร์บรรทัด การอ่านอินพุตของผู้ใช้ต้องสะท้อนก้องอักขระ ผลลัพธ์จะต้องเป็นไปตามโค้ดเพจ 437หรือโค้ดเพจเริ่มต้นของอะแดปเตอร์ VGA ในตัวของคุณ bootloader นี่คือ bootloader x86 bootloader ลงท้ายด้วย55 AAลำดับดั้งเดิม รหัสของคุณจะต้องทำงานบน VirtualBox, Qemu หรือโปรแกรมจำลอง x86 ที่รู้จักกันดีอื่น ๆ ดิสก์ Brainfuck ที่เรียกใช้งานได้จะอยู่ที่เซกเตอร์ของดิสก์ที่สองหลังจากบูทโหลดเดอร์ของคุณซึ่งโดยปกติจะอยู่ในส่วน MBR เซกเตอร์แรกบนดิสก์ รหัสเพิ่มเติม (รหัสใด ๆ ที่มากกว่า …

12
“ Bit-borrow” ตัวเลขสองตัว
คุณรู้หรือไม่ว่ามีจำนวนน้อยสามารถยืมบิตจากจำนวนที่มากขึ้นได้? นี่คือตัวอย่าง สมมุติว่าตัวเลขสองตัวของเราคือ 5 และ 14 ก่อนอื่นเขียนมันเป็นเลขฐานสอง: 5 14 000101 001110 ครั้งแรกที่เราใช้เวลาที่เล็กที่สุดในบิตห่างจากจำนวนมากและเราจะให้มันไปที่เล็กที่สุดออกบิตกับจำนวนอื่น ๆ ดังนั้น This bit turns off | v 000101 001110 ^ | This bit turns on ตอนนี้เรามี 000111 001100 และหมายเลขของเราคือ 7 และ 12 หมายเลขแรกยังเล็กกว่าดังนั้นเราจึงดำเนินการต่อ 000111 001100 001111 001000 ตอนนี้เรามี 15 และ 8 ดังนั้นเราจึงหยุด เราจะเรียกตัวเลขสองตัวนี้ว่า "การยืมบิต" ลองทำอีกตัวอย่าง 20 และ …

12
ส่งคืนตัวเลขที่ n ของลำดับของอนุกรม aliquot
0. คำจำกัดความ ลำดับคือรายการของตัวเลข ชุดคือผลรวมของรายการหมายเลขที่ ชุดจำนวนธรรมชาติประกอบด้วย "จำนวนเต็มไม่เป็นลบมากกว่าศูนย์" ทั้งหมด หาร (ในบริบทนี้) ของจำนวนธรรมชาติเจเป็นจำนวนธรรมชาติฉันเช่นว่าเจ ÷ ฉันยังเป็นจำนวนธรรมชาติ 1. PREAMBLE สองคำถามอื่น ๆ บนเว็บไซต์นี้กล่าวถึงแนวคิดของการหารหรือลำดับของตัวหารของจำนวนธรรมชาติซึ่งน้อยกว่า การหาตัวเลขที่เป็นมิตรนั้นเกี่ยวข้องกับการคำนวณผลรวมของตัวหารเหล่านี้เรียกว่าผลรวมของ aliquot หรือ aliquot หมายเลขธรรมชาติทุกตัวมีผลรวมของส่วนลงตัวเองแม้ว่าค่าของผลรวมส่วนแบ่งของจำนวนนั้นไม่จำเป็นต้องไม่ซ้ำกันกับจำนวนนั้น ( Exempli gratiaทุกหมายเลขเฉพาะมีผลรวมส่วนลงตัวจำนวน 1) 2. ความท้าทาย กำหนดจำนวนตามธรรมชาติnส่งคืนnตัวเลขหลักที่ลำดับของผลรวมของส่วนลงตัว หลายซีรีส์แรกในลำดับเริ่มต้นด้วยซีรีย์ 1 คือ: {0, 1, 1, 3, 1, 6, 1, 7, 4, 8, 1, 16, 1, 10, 9, 15, 1, 21, …

12
โทรเลข Cooke และ Wheatstone ห้าเข็ม
คำนิยาม ตามที่Wikipedia : โทรเลข Cooke และ Wheatstone เป็นระบบโทรเลขไฟฟ้ายุคแรกที่สร้างขึ้นตั้งแต่ยุค 1830 ที่ประดิษฐ์โดยนักประดิษฐ์ชาวอังกฤษ William Fothergill Cooke และนักวิทยาศาสตร์ชาวอังกฤษ Charles Wheatstone มันเป็นระบบโทรเลขแรกที่ให้บริการเชิงพาณิชย์ ตัวรับประกอบด้วยเข็มจำนวนหนึ่งซึ่งสามารถเคลื่อนย้ายโดยขดลวดแม่เหล็กไฟฟ้าเพื่อชี้ไปที่ตัวอักษรบนกระดาน ฟีเจอร์นี้เป็นที่ชื่นชอบของผู้ใช้งานยุคแรกที่ไม่ต้องการเรียนรู้รหัสและนายจ้างที่ไม่ต้องการลงทุนในการฝึกอบรมพนักงาน มันได้ผลเช่นนี้: ตรงกลางมีเข็มห้าเข็มซึ่งสามารถเบี่ยงเบนเข็มนาฬิกาตามเข็มนาฬิกา (เช่นในกรณีของเข็มกลาง) หรือเข็มนาฬิกาทวนเข็มนาฬิกา (เช่นกรณีของเข็มสุดท้าย) ในภาพข้างต้นสองเข็มหักเหชี้ไปที่ตัวอักษรGซึ่งหมายความว่าตัวอักษรที่ถูกส่ง / Gรับเป็นตัวอักษร โปรดทราบว่าตัวอักษรC, J, Q, V, X, Zหายไปจึงต้องได้รับการแทนที่ด้วยตัวอักษรอื่น ๆ งาน คุณจะได้รับตัวละครในABDEFGHIKLMNOPRSTUWYเป็น input และคุณจะส่งออกการกำหนดค่าที่สอดคล้องกันของห้าเข็มกับ undeflected เป็น|เบี่ยงเบนเข็มนาฬิกาเป็นและหักเหทวนเข็มนาฬิกาเป็น/\ Testcases ซึ่งจะครอบคลุมอินพุตที่เป็นไปได้ทั้งหมด input output A /|||\ B /||\| D |/||\ …

10
ใช้งานกระเป๋า
ถุงเรียกว่ายังเป็น MultiSet เป็นคอลเลกชันเรียงลำดับ คุณสามารถเรียกมันว่าชุดที่อนุญาตให้ทำซ้ำหรือรายการ (หรืออาร์เรย์) ที่ไม่ได้เรียงลำดับ / จัดทำดัชนี ในความท้าทายนี้คุณจะถูกขอให้ดำเนินการเกี่ยวกับกระเป๋า: การเพิ่มการทดสอบการแตกการหารการนับและการทดสอบความเสมอภาค การดำเนินงาน การดำเนินการที่ระบุอาจไม่ธรรมดา นอกจากนี้รวมสองถุงเป็นหนึ่งเดียวรักษาจำนวนรวมของแต่ละค่า [1,2,2,3] + [1,2,4] = [1,1,2,2,2,3,4] ความแตกต่างจะลบออกจากถุงแต่ละองค์ประกอบของถุงอื่นหรือไม่ทำอะไรเลยหากไม่มีองค์ประกอบดังกล่าว [1,2,2,4] - [1,2] = [2,4] [1,2,3] - [2,4] = [1,3] การคูณทวีคูณแต่ละองค์ประกอบในถุง [1,2,3,3,4] * 3 = [1,1,1,2,2,2,3,3,3,3,3,3,4,4,4] 2 * [1,3] = [1,1,3,3] การหารเป็นเรื่องแปลกหนึ่ง: แต่ละองค์ประกอบที่เท่ากันจะถูกใส่ในถุงใหม่ที่เท่ากันองค์ประกอบที่ไม่สามารถสร้างกลุ่ม n ให้อยู่ในถุงได้ ส่งคืนหนึ่งในถุงใหม่ n [1,1,2,2,2] / 2 = …

24
เลือกคำรอบดัชนีที่กำหนดในสตริงที่กำหนด
ใน Windows เมื่อคุณดับเบิลคลิกที่ข้อความคำว่าเคอร์เซอร์ของคุณในข้อความจะถูกเลือก (คุณสมบัตินี้มีคุณสมบัติที่ซับซ้อนมากขึ้น แต่ไม่จำเป็นต้องนำไปใช้กับความท้าทายนี้) ตัวอย่างเช่นสมมติเป็นเคอร์เซอร์ของคุณใน|abc de|f ghi จากนั้นเมื่อคุณคลิกสองครั้งสตริงย่อยdefจะถูกเลือก Input / Output คุณจะได้รับสองอินพุต: สตริงและจำนวนเต็ม งานของคุณคือส่งคืนคำ - สตริงย่อยของสตริงรอบดัชนีที่ระบุโดยจำนวนเต็ม เคอร์เซอร์ของคุณสามารถอยู่ข้างหน้าหรือหลังอักขระในสตริงที่ดัชนีที่ระบุ หากคุณเคยใช้มาก่อนโปรดระบุในคำตอบของคุณ ข้อมูลจำเพาะ (Specs) ดัชนีจะรับประกันต้องอยู่ภายในคำจึงไม่มีกรณีขอบชอบหรือabc |def ghiabc def| ghi สตริงจะมีอักขระ ASCII ที่พิมพ์ได้เท่านั้น (จาก U + 0020 ถึง U + 007E) คำว่า "word" ถูกกำหนดโดย regex (?<!\w)\w+(?!\w)โดยที่\wถูกกำหนดโดย[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]หรือ "ตัวอักษรและตัวเลขใน ASCII รวมถึงขีดล่าง" ดัชนีสามารถเป็นดัชนี 1 ดัชนีหรือดัชนี0 ดัชนี หากคุณใช้ดัชนี …
20 code-golf  string 

21
ลำดับหญิงและชาย
คำถามนี้อาจยากกว่างาน "สร้างลำดับของตัวเลข" ทั้งหมดเนื่องจากต้องใช้ลำดับสองที่ทำงานอย่างพร้อมเพรียง รอคำตอบจริงๆ! ในหนังสือของเขา " Gödel, Escher, Bach: นิรันดร์สีทองถักเปีย ", Douglas Hofstadter มีลำดับของตัวเลขค่อนข้างน้อยภายในพวกเขาทั้งหมดขึ้นอยู่กับเทอมที่แล้วในทางใดทางหนึ่ง สำหรับข้อมูลในทุกลำดับให้ดูที่หน้าวิกิพีเดียนี้ หนึ่งคู่ของลำดับที่น่าสนใจจริง ๆ คือลำดับหญิงและชายซึ่งมีการกำหนดดังนี้: n > 0สำหรับ นี่คือลำดับหญิงและลำดับชาย งานของคุณคือเมื่อได้รับจำนวนเต็มnเป็นอินพุทให้ส่งคืนรายการลำดับหญิงและลำดับชายด้วยจำนวนคำเท่ากับnในเอาต์พุตสองบรรทัดโดยมีลำดับหญิงในบรรทัดแรกและลำดับชายใน ที่สอง. ตัวอย่างอินพุตและเอาต์พุต: อินพุต: 5 เอาต์พุต:[1, 1, 2, 2, 3] [0, 0, 1, 2, 2] อินพุต: 10 เอาต์พุต:[1, 1, 2, 2, 3, 3, 4, 5, 5, 6] [0, …

19
เส้นทแยงมุม จำกัด ของ Cantor
รับรายการNจำนวนเต็มแต่ละNหลักมีตัวเลขออกตัวเลขที่แตกต่างจากตัวเลขแรกเพราะตัวเลขตัวแรกตัวเลขตัวที่สองเพราะตัวเลขตัวที่สองเป็นต้น ตัวอย่าง รับรายการนี้: 1234 4815 1623 4211 ตัวเลขตัว2932แรกของตัวเลขนั้นแตกต่างจากตัวเลขตัวแรกของตัวเลขตัวที่สองของตัวเลขนั้นแตกต่างจากตัวเลขตัวที่สองของตัวเลขที่สองเป็นต้นดังนั้นมันจะเป็นผลลัพธ์ที่ถูกต้อง ปัจจัยการผลิต คุณอาจใช้ทั้งรายการและNเป็นอินพุตหรือเฉพาะรายการถ้าคุณต้องการ จำนวนเต็มแต่ละรายการในรายการจะต้องมีจำนวนหลักเท่ากับความยาวของรายการ ( N) ตัวเลขจะไม่มีเลขศูนย์นำหน้า รายการอินพุตต้องมีตัวเลขและไม่ใช่สตริง คุณสามารถรับอินพุตเป็นฟังก์ชันอาร์กิวเมนต์ผ่านSTDINหรือสิ่งอื่นที่คล้ายคลึงกันได้ คุณอาจคิดว่ารายการจะต้องไม่เกิน 10 องค์ประกอบ (และไม่มีหมายเลขใดในรายการที่จะใหญ่กว่า2147483647) เอาท์พุท ไม่เพียงพอที่เอาต์พุตไม่ได้อยู่ในรายการ ตัวเลขต้องแตกต่างกันตามที่อธิบายไว้ข้างต้น คุณสามารถใช้กลยุทธ์การเลือกตัวเลขใด ๆ ที่เคารพข้อ จำกัด ของตัวเลขที่แตกต่างกัน จำนวนไม่สามารถมีศูนย์นำหน้า คุณสามารถส่งออกจำนวนผ่านSTDOUTกลับมาจากฟังก์ชั่น ฯลฯ กรณีทดสอบ Input: 12345678 23456789 34567890 45678901 56789012 67890123 78901234 89012345 Possible output: 24680246 Input: 1 Possible output: 2 เกณฑ์การให้คะแนน …

6
X + Y = Z - แต่ในฐานใด
ความท้าทาย ได้รับหมายเลข 3 X, YและZในฐานBหาBASE ซึ่งนอกเหนือจากXและอัตราผลตอบแทนY Zปัจจัยการผลิตx = 20, Y = 12และZ = 32ได้ผล5เพราะ20 + 12 = 32ในฐาน 5 คุณอาจคิดว่าจะมีฐานที่การเพิ่มถูกต้องเสมอ (มีบางกรณีที่ไม่มีฐานอยู่ขอขอบคุณ @ MasonWheelerและ @ Not ที่ Charlesสำหรับตัวอย่างบางส่วน) ฐานที่ต่ำที่สุดที่เป็นไปได้คือ 1 คุณอาจใช้ตัวเลข 1 หรือ 0 เป็นตัวเลขได้ แต่คุณไม่สามารถผสมตัวเลขเหล่านั้นได้ I / O ตัวเลขของตัวเลขที่ป้อนจะเป็นจำนวนเต็มไม่เป็นลบ คุณอาจสมมติว่าหมายเลขอินพุตมีศูนย์นำหน้าดังนั้นมีความยาวที่เฉพาะเจาะจง (หรือเท่ากันทั้งหมด) คุณอาจใช้ตัวเลขในรูปแบบที่สะดวกที่สุดตราบใดที่ยังไม่ได้ดำเนินการ ซึ่งรวมถึงรูปแบบโดยรวมของตัวเลขสามตัวและรูปแบบของตัวเลขของแต่ละหมายเลขเหล่านั้น โปรดระบุให้ชัดเจนว่าคุณใช้รูปแบบใด หากมีหลายฐานที่เป็นไปได้คุณสามารถส่งออกทั้งหมดหรือเพียงหนึ่งในนั้น คุณอาจคิดว่าฐานและหมายเลขอินพุตจะอยู่ในขีด จำกัด ตัวเลขของภาษาของคุณ กฎระเบียบ อนุญาตให้ใช้ฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบ …

17
คุณควรจัดเก้าอี้อย่างไร?
คุณสอนชั้นเรียนของนักเรียนที่มีความชอบที่น่าสนใจสำหรับวิธีการจัดเก้าอี้ของพวกเขา มีข้อกำหนดเฉพาะ 3 ข้อที่พวกเขามีสำหรับวิธีการจัดเก้าอี้: พวกเขาส่วนใหญ่จะถูกจัดเรียงในรูปสี่เหลี่ยมผืนผ้าแม้ว่ามันจะหมายความว่าเก้าอี้บางตัวว่างเปล่า จะต้องมีเก้าอี้ว่างน้อยที่สุดเท่าที่จะทำได้ พวกเขาจะต้องเป็น "squarey" ที่สุด Squarey-ness พิจารณาจากระยะห่างระหว่างความกว้างและความสูงของสี่เหลี่ยมผืนผ้าต่ำกว่าดีกว่า ตัวอย่างเช่นสี่เหลี่ยมผืนผ้าที่มีสี่เหลี่ยมจัตุรัสเป็น4x73 จะมีความเฉพาะเจาะจงมากขึ้น "คะแนน" ของข้อตกลงคือระยะห่างระหว่างความกว้างและความสูงบวกกับจำนวนเก้าอี้ที่ว่างเปล่า ลองยกตัวอย่าง สมมติว่าคุณมีนักเรียน 13 คน คุณสามารถจัดเก้าอี้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้: 1x13 2x7 3x5 4x4 1x13ไม่กว้างมาก อันที่จริง 1 และ 13 อยู่ห่างกัน 12 เราจึงให้ข้อตกลงนี้ 12 คะแนน นอกจากนี้ยังมีเก้าอี้ว่าง 0 ตัวดังนั้นเราจึงเพิ่ม 0 คะแนนทำให้ข้อตกลงนี้มีคะแนน 12 ไม่ดีเท่าไหร่ 2x7ดีกว่าอย่างแน่นอน 2 และ 7 อยู่ห่างกันเพียง 5 เราจึงให้ข้อตกลงนี้ 5 คะแนน …
20 code-golf  math 

19
การนับจำนวนในฐานชีวมวล 62
ภารกิจคือการสร้างสตริงทั้งหมดจาก 'a' ถึง '999' รวมถึงตัวอักษรตัวพิมพ์ใหญ่เช่น: 'a', 'b', 'c' ... 'y', 'z', 'A', 'B', 'C' ... 'Y', 'Z', '0', '1', 2' ... '8', '9', 'aa', 'ab', 'ac' ... 'az', 'aA', 'aB' ... 'aZ', 'a0' ... 'a9', 'ba' และอื่น ๆ (เติมในช่องว่าง) โดยเริ่มจากสตริงว่าง การป้อนข้อมูล: จำนวนอักขระต่อเนื่องที่โปรแกรมต้องพิมพ์ถึง เอาท์พุท: อาร์เรย์ที่มีแต่ละสตริงหรือหนึ่งสตริงต่อหนึ่งบรรทัด ชี้แจง: ลำดับไม่สำคัญคุณสามารถพิมพ์ตัวอักษรตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กก่อนหากคุณต้องการ ผลลัพธ์สามารถคืนค่าได้ทุกประเภทไม่จำเป็นต้องเป็นอาร์เรย์โดยเฉพาะแม้ว่าฉันสงสัยว่าการพิมพ์ชุดค่าผสมทั้งหมดจะไม่เป็นวิธีที่ง่ายที่สุด อินพุตของ3จะพิมพ์สตริงทั้งหมดจาก'a'(หรือ'') ไปยัง'999'input อินพุต5สูงสุด'99999'และต่อไป

1
คำสั่งลูกสุนัข
puppyยูทิลิตี้ต้องใช้ชื่อไฟล์เป็น input และไม่ว่าสิ่งที่คุณคาดว่าจะได้ลูกสุนัขที่จะทำมัน shreds มัน! วิธีฉีก ฉีกหน้าด้วยฟันของคุณแยกไฟล์อินพุตในบรรทัดใหม่ ฉีกขึ้นแต่ละหน้ามีอุ้งเท้าของคุณสำหรับแต่ละบรรทัด (ไม่รวมเลื่อนบรรทัด), การเลือกสุ่มจำนวนเต็มดังกล่าวว่าn 2 <= n <= # of characters in the lineแบ่งบรรทัดออกเป็นnสตริงย่อยที่ไม่ทับซ้อนกันซึ่งมีความยาวแบบสุ่ม กระจายส่วนย่อยของพื้นกระจายเอาต์พุตย่อยแต่ละบรรทัดของแต่ละบรรทัดไปยังชื่อไฟล์สุ่มที่ไม่ซ้ำกัน ( [a-zA-Z0-9]เฉพาะส่วนขยายที่สอดคล้องกันใด ๆ รวมถึงไม่มีความยาว1 <= n <= 12) ในไดเรกทอรีปัจจุบัน เขียนทับไฟล์ที่มีอยู่แล้วภายในไดเรกทอรีปัจจุบัน (รวมถึงไฟล์อินพุตหากอยู่ในไดเรกทอรีปัจจุบัน) ยอมรับได้ตราบใดที่ไฟล์นั้นไม่รบกวนการส่งข้อมูลของคุณ ชี้แจง จะไม่มีการป้อนข้อมูลที่เป็นไปได้ที่จะใช้ชื่อไฟล์ที่เป็นไปได้ทั้งหมด ไฟล์จะประกอบด้วย ASCII ที่พิมพ์ได้เท่านั้น (ปกติ 32-127) และ linefeeds และจะใช้ปลายบรรทัดสไตล์ UNIX / Linux (LF ไม่ใช่ CRLF สไตล์ …

12
เคล็ดลับสำหรับการเล่นกอล์ฟใน MATL
MATLภาษาการเล่นกอล์ฟที่สร้างขึ้นโดยหลุยส์ Mendo MATL ได้รับการพิสูจน์แล้วว่ามีการแข่งขันที่สูงและมักจะเต้นในภาษาอื่น ๆ เช่น Pyth, CJam และ Jelly เคล็ดลับที่เป็นประโยชน์สำหรับการเล่นกอล์ฟใน MATL คืออะไร (เช่นเคยหนึ่งเคล็ดลับต่อคำตอบโปรด!) สำหรับบันทึกที่ MATL สามารถทดสอบออนไลน์ได้ที่นี่ เอกสารสามารถพบได้ในGithub
20 code-golf  tips  matl 

4
“ เสร็จงาน” โดยเร็วที่สุด
พื้นหลัง ลองนึกภาพสักครู่ว่าคุณมีงานที่น่าเบื่ออย่างเหลือเชื่อ ทุกเช้าคุณจะได้รับชุดของงานที่คุณควรทำงานในวันนั้น แต่ละงานมีระยะเวลาแน่นอนและเมื่อเริ่มต้นแล้วจะต้องทำให้สำเร็จในครั้งเดียว เจ้านายของคุณจะไม่ยอมเกียจคร้านดังนั้นถ้ามีงานที่คุณยังสามารถทำให้เสร็จก่อนกลับบ้านคุณจะต้องทำงานกับสิ่งใดสิ่งหนึ่ง (คุณสามารถเลือกได้) ในทางกลับกันถ้างานที่เหลืออยู่ทั้งหมดจะทำให้คุณต้องทำงานล่วงเวลาคุณจะต้องกลับบ้านก่อน! ดังนั้นเป้าหมายของคุณคือการลดระยะเวลาการทำงานของคุณให้สั้นที่สุดด้วยการกำหนดตารางเวลาที่ชาญฉลาด ความจริงแล้วสนุก: นี่เป็นหนึ่งในตัวแปรของปัญหาการจัดตารางเวลาขี้เกียจของระบบราชการและมันเป็นปัญหาที่ยาก ( แหล่งที่มา ) อินพุต คุณมีสองอินพุต: จำนวนของ "หน่วยเวลา" ในวันทำงานของคุณ (จำนวนเต็มบวกL) และการรวบรวมงาน (อาร์เรย์ที่ไม่ว่างของจำนวนเต็มบวกTแสดงถึงระยะเวลาของงาน) พวกเขาสามารถดำเนินการในลำดับใด ๆ และในรูปแบบที่เหมาะสม อาร์เรย์Tอาจจะมีงานที่มีระยะเวลามากกว่าแต่ก็รับประกันได้ว่าจะมีอย่างน้อยหนึ่งงานที่มีระยะเวลาที่มากที่สุดLL เอาท์พุต ตารางเวลาที่ถูกต้องเป็นส่วนหนึ่งของงานS ⊆ Tดังกล่าวที่sum(S) ≤ Lและงานที่ไม่ได้อยู่ในทุกS(multiplicities นับ) L - sum(S)มีระยะเวลาอย่างเคร่งครัดมากกว่า ผลลัพธ์ของคุณจะเป็นผลรวมที่น้อยที่สุดที่เป็นไปได้ของกำหนดการที่ถูกต้อง กล่าวอีกนัยหนึ่งคุณจะแสดงจำนวนหน่วยเวลาที่น้อยที่สุดที่คุณต้องทำงานในวันนี้ ตัวอย่าง พิจารณาอินพุต L = 9 T = [3,4,4,4,2,5] วิธีหนึ่งในการกำหนดวันของคุณคือ[4,4]: คุณทำงานสองอย่างให้เสร็จใน 8 หน่วยเวลาและเหลือ 1 …

4
ดึงแม่เหล็กในอาร์เรย์
พื้นหลัง ฉันมีแม่เหล็กที่ทรงพลังหนึ่งแถวและวัตถุโลหะหลายอันที่อยู่ระหว่างพวกมัน แม่เหล็กจะดึงมันไว้ที่ไหน อินพุต ข้อมูลที่คุณป้อนเป็นจำนวนเต็มจำนวนเต็มที่ไม่เป็นลบซึ่งจะมีอย่างน้อยหนึ่ง1รายการ คุณสามารถใช้รูปแบบที่เหมาะสม 0ของอาร์เรย์แทนพื้นที่ว่างเปล่าและ1s แทนแม่เหล็กถาวร ตัวเลขอื่น ๆ ทั้งหมดเป็นวัตถุโลหะซึ่งถูกดึงโดยแม่เหล็ก วัตถุทุกชิ้นจะถูกดึงเข้าหาแม่เหล็กที่ใกล้ที่สุด (หากมีการผูกกันวัตถุนั้นจะถูกดึงไปทางขวา) และมันจะเคลื่อนที่ไปในทิศทางนั้นจนกว่าจะชนกับแม่เหล็กหรือวัตถุอื่น ในที่สุดวัตถุทั้งหมดได้รวมตัวกันรอบ ๆ แม่เหล็ก ลำดับของวัตถุถูกเก็บรักษาไว้ เอาท์พุต เอาต์พุตของคุณคืออาร์เรย์ที่วัตถุทุกชิ้นถูกดึงใกล้กับแม่เหล็กที่ใกล้ที่สุดเท่าที่จะทำได้ ควรมีรูปแบบเดียวกันกับอินพุต ตัวอย่าง พิจารณาอาร์เรย์ [0,0,2,0,1,1,0,2,0,3,0,5,0,1,0] ซ้ายสุดได้รับการดึงต่อคู่แรกของแม่เหล็กเช่นเดียวกับครั้งที่สอง2 มีแม่เหล็กสี่ขั้นตอนไปในทั้งสองทิศทางจึงได้รับการดึงไปทางด้านขวา มันถูกดึงไปทางขวาและมันก็อยู่ระหว่างและแม่เหล็ก ผลลัพธ์ที่ถูกต้องคือ2353 [0,0,0,2,1,1,2,0,0,0,0,3,5,1,0] กฎและการให้คะแนน คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต กรณีทดสอบ [0,1,0] -> [0,1,0] [1,0,2,0,0,1,0] -> [1,2,0,0,0,1,0] [7,0,5,0,0,1,0] -> [0,0,0,7,5,1,0] [1,0,3,0,1,0,3,0,1] -> [1,0,0,3,1,0,0,3,1] [1,0,0,0,0,0,0,7,3] -> [1,7,3,0,0,0,0,0,0] [1,2,3,4,5,6,7,8,9,10,11,0,0,0,1] -> …

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