คำถามติดแท็ก array-manipulation

การแข่งขันเพื่อแก้ปัญหาเฉพาะผ่านการใช้งานและการจัดการของอาร์เรย์

14
การแยกแบบไม่ต่อเนื่องหรือการคูณพหุนาม
เนื่องจากรายการจำนวนเต็มสองรายการที่ไม่ว่างเปล่าการส่งของคุณควรคำนวณและส่งกลับค่าการแยกแบบไม่ต่อเนื่องของทั้งสองรายการ ที่น่าสนใจถ้าคุณพิจารณาองค์ประกอบของรายการเป็นค่าสัมประสิทธิ์ของพหุนาม, การบิดของทั้งสองรายการแสดงถึงค่าสัมประสิทธิ์ของผลิตภัณฑ์ของพหุนามทั้งสอง คำนิยาม รับรายการA=[a(0),a(1),a(2),...,a(n)]และB=[b(0),b(1),b(2),...,b(m)](การตั้งค่าa(k)=0 for k<0 and k>nและb(k)=0 for k<0 and k>m) จากนั้นสังวัตนาของทั้งสองจะถูกกำหนดเป็นA*B=[c(0),c(1),...,c(m+n)]ที่ไหนc(k) = sum [ a(x)*b(y) for all integers x y such that x+y=k] กฎระเบียบ อนุญาตการจัดรูปแบบอินพุตและเอาต์พุตที่สะดวกสำหรับภาษาของคุณ ไม่ควรใช้บิวด์อินเพื่อสร้างสัมพันธภาพการสร้างสัมพันธภาพร่วมสมัยและการคูณพหุนามจะไม่ได้รับอนุญาต ตัวอย่าง [1,1]*[1] = [1,1] [1,1]*[1,1] = [1,2,1] [1,1]*[1,2,1] = [1,3,3,1] [1,1]*[1,3,3,1] = [1,4,6,4,1] [1,1]*[1,4,6,4,1] = [1,5,10,10,5,1] [1,-1]*[1,1,1,1,1] = [1,0,0,0,0,-1] [80085,1337]*[-24319,406] = …

7
Hilbert-Curvify เมทริกซ์
แรงบันดาลใจจากคำถามนี้ อีกวิธีในการคลายภาพ 2D ลงในสาย 1D คือใช้Hilbert Curve โค้งนี้มีหลายรุ่นขึ้นอยู่กับจำนวนการวนซ้ำที่ใช้ในขณะคำนวณ ด้านล่างติดตามตัวอย่างของ Hilbert Curves จากลำดับแรกถึงลำดับที่ห้า วิธีการคำนวณเส้นโค้งนี้มีดังต่อไปนี้ อันดับแรกเรากำหนดคำสั่งแรกของ Hilbert Curve ตามที่แสดงในรูป (อันสำหรับ n = 1) เพื่อให้มันพอดีกับสี่เหลี่ยม 1x1 เรากว่าทำโค้งสี่ชุดนี้ให้เว้นระยะห่างในจตุรัส 4x4 เพื่อให้พวกเขาทั้งหมดนำเสนอ "เว้า" ทางด้านซ้าย จากนั้นเราพลิกทั้งสองซ้ายสุดเพื่อ 1 โค้งเพื่อให้หนึ่งเว้าด้านบนหันไปทางด้านบนในขณะที่ด้านล่างหันด้านล่าง ในที่สุดเราก็เชื่อมมุมของ Hilbert Curves ที่อยู่ติดกัน หากต้องการรับเส้นโค้ง (n + 1) เพื่อเราจะต้องทำซ้ำขั้นตอนด้วยเส้นโค้ง n-order สี่เส้น เราสามารถเห็นการสร้างภาพของกระบวนการที่นี่ (ฉันจะเพิ่มภาพรายละเอียดกระบวนการในไม่ช้า) งานของคุณในการท้าทายนี้คือการคลี่เมทริกซ์ของจำนวนเต็มตามลำดับต่ำสุดของ Hilbert Curveสำหรับเมทริกซ์นั้น เพื่อความง่ายเราจะมีเส้นโค้งที่เริ่มต้นจากมุมซ้ายบนของเมทริกซ์ คุณสามารถรับอินพุตเป็นรายการของจำนวนเต็มโดยที่แต่ละรายการย่อยจะแสดงแถวของเมทริกซ์ คุณสามารถสันนิษฐานได้ว่าอินพุตจะเป็นเมทริกซ์จตุรัส …

20
ช่วงที่ผันผวน
เมื่อรับรายการด้วยตัวเลขให้แสดงช่วงดังนี้: การป้อนข้อมูล: จะกลายเป็น[0, 5, 0][0, 1, 2, 3, 4, 5, 4, 3, 2, 1, 0] นี้จะทำแผนที่ช่วงผ่านอาร์เรย์ดังนั้นเราจึงต้องสร้างช่วงซึ่งเป็น[0, 5] [0, 1, 2, 3, 4, 5]หลังจากนั้นเราจะใช้ในการสร้างช่วง5 [5, 0]ต่อท้ายช่วงก่อนหน้านี้ทำให้เรา: [0, 1, 2, 3, 4, 5, 4, 3, 2, 1, 0] ลองสังเกตกรณีทดสอบด้วยตัวเลขสองหลักที่อยู่ติดกัน: [3, 5, 5, 3], ranges: [3, 5] = 3, 4, 5 [5, 5] …

11
เพิ่มความแตกต่างยกกำลังสอง
พิจารณาการเปลี่ยนแปลงของค่าจำนวนเต็มจากไป1 Nเช่นตัวอย่างนี้สำหรับN = 4: [1, 3, 4, 2] เราจะถือว่ารายการนี้เป็นวงจรเช่นนั้น1และ2ได้รับการปฏิบัติเหมือนติดกัน ปริมาณหนึ่งที่เราสามารถคำนวณได้สำหรับรายการดังกล่าวคือผลต่างกำลังสองรวมของค่าที่อยู่ติดกัน: (1-3)² + (3-4)² + (4-2)² + (2-1)² = 10 Nงานของคุณคือการหาการเปลี่ยนแปลงซึ่งจะเพิ่มปริมาณนี้ให้เป็นจำนวนเต็มบวก ในกรณีของN = 4ตัวอย่างข้างต้นจะไม่เหมาะสมที่สุด (อันที่จริงแล้วเป็นเพียงเล็กน้อย) เราสามารถบรรลุผลต่างกำลังสองรวม18กับการเปลี่ยนแปลงต่อไปนี้ (รวมถึงการเปลี่ยนแปลงอื่น ๆ ): [1, 4, 2, 3] อัลกอริทึมของคุณต้องทำงานในเวลาพหุนาม (จากN) โดยเฉพาะอย่างยิ่งคุณไม่สามารถคำนวณความแตกต่างยกกำลังสองทั้งหมดของพีชคณิตทั้งหมดได้ คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น, รับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด), อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชันและส่งผลลัพธ์ผ่าน STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด), ค่าส่งคืนของฟังก์ชันหรือพารามิเตอร์ ผลลัพธ์อาจอยู่ในรูปแบบรายการแบบแบนหรือแบบสตริงที่สะดวกใด ๆ คุณอาจเลือกที่จะกลับรายการที่มีค่าจาก0การN-1แทนไป1N ใช้กฎมาตรฐานของกอล์ฟ ทดสอบข้อมูล มีวิธีการวิเคราะห์ที่ดีสำหรับปัญหานี้ เช่นโซลูชันที่ถูกต้องทั้งหมดN …
19 code-golf  array-manipulation  permutations  restricted-complexity  code-golf  geometry  grid  code-golf  string  sorting  code-golf  simulation  code-golf  string  code-golf  arithmetic  code-golf  sorting  code-golf  string  code-golf  sorting  code-golf  interpreter  code-golf  number  kolmogorov-complexity  natural-language  conversion  code-golf  random  internet  code-golf  board-game  code-golf  number  sequence  code-golf  math  number  code-challenge  image-processing  classification  test-battery  code-golf  ascii-art  code-golf  tips  code-golf  arithmetic  code-golf  tips  code-golf  tips  javascript  code-golf  array-manipulation  code-golf  ascii-art  code-golf  string  binary  code-golf  arithmetic  linear-algebra  matrix  code-golf  sequence  code-golf  math  number  arithmetic  code-golf  primes  code-golf  math  code-golf  array-manipulation  counting  code-golf  arithmetic  code-golf  quine  code-generation  polyglot  code-golf  math  kolmogorov-complexity  trigonometry  code-golf  string  encryption 

20
คำนวณ minimax ของอาร์เรย์
พิจารณาอาร์เรย์xเช่น[1 5 3 4]และจำนวนตัวอย่างเช่นn 2เขียน length- ทั้งหมดnsubarrays [1 5]เลื่อน: [5 3], [3 4], ปล่อยให้minimaxของ array ถูกกำหนดเป็นค่าต่ำสุดของ maxima ของบล็อกแบบเลื่อน ดังนั้นในกรณีนี้ก็จะเป็นขั้นต่ำของซึ่งเป็น5, 5, 44 ท้าทาย ให้อาร์เรย์xและจำนวนเต็มบวกnเอาท์พุท minimax ตามที่นิยามไว้ข้างต้น อาร์เรย์xจะมีจำนวนเต็มบวกเท่านั้น nมักจะเป็นอย่างน้อยและในที่สุดความยาวของ1x การคำนวณอาจทำได้โดยขั้นตอนใด ๆ โดยไม่จำเป็นต้องเป็นไปตามที่กำหนดไว้ข้างต้น รหัสกอล์ฟน้อยที่สุดที่จะชนะ กรณีทดสอบ x, nส่งผลให้เกิด [1 5 3 4], 2 4 [1 2 3 4 5], 3 3 [1 1 1 …

11
คำนวณผลรวมสะสมของเวกเตอร์ที่มีขอบเขต
ผลรวมสะสมของเวกเตอร์คำนวณได้ง่ายๆโดยหาผลรวมขององค์ประกอบก่อนหน้าทั้งหมด ตัวอย่างเช่น vec = [1 1 1 -1 -1 -1 -1 -1 1 1 1 1 -1] cum_vec = [1 2 3 2 1 0 -1 -2 -1 0 1 2 1] ตอนนี้กำหนดขีด จำกัด บนและล่างหมายความว่าคุณหยุดเพิ่มผลรวมสะสมถ้ามันอยู่ที่ขีด จำกัด บนและหยุดลดผลรวมสะสมถ้ามันอยู่ที่ขีด จำกัด ล่าง ตัวอย่างง่ายๆ: upper_lim = 2 lower_lim = -1 vec = [1 1 …

8
ภารกิจสกัดเสียงกระเพื่อม
ในภาษาสไตล์เสียงกระเพื่อมรายการมักจะถูกกำหนดเช่นนี้: (list 1 2 3) สำหรับจุดประสงค์ของการท้าทายรายการทั้งหมดจะมีจำนวนเต็มบวกหรือรายการอื่น ๆ เท่านั้น เราจะไม่ใส่listคำหลักในตอนเริ่มต้นดังนั้นรายการจะมีลักษณะดังนี้: (1 2 3) carเราจะได้รับองค์ประกอบแรกของรายการโดยใช้ ตัวอย่างเช่น: (car (1 2 3)) ==> 1 และเราสามารถรับรายการต้นฉบับโดยลบองค์ประกอบแรกด้วยcdr: (cdr (1 2 3)) ==> (2 3) สำคัญ: cdrจะส่งคืนรายการเสมอแม้ว่ารายการนั้นจะมีองค์ประกอบเดียว: (cdr (1 2)) ==> (2) (car (cdr (1 2))) ==> 2 รายการสามารถอยู่ในรายการอื่น ๆ : (cdr (1 2 3 (4 5 …

13
พาร์ติชันที่ปรับปรุงแล้ว
พิจารณาอาร์เรย์ของจำนวนเต็ม: [1, 0, 9, 1, 3, 8] มีหลายวิธีในการแบ่งรายการนี้เป็นรายการย่อยที่ต่อเนื่องกัน ที่นี่มีสาม: A: [[1, 0, 9], [1, 3, 8]] B: [[1], [0, 9], [1, 3], [8]] C: [[1, 0], [9, 1], [3, 8]] เราจะเรียกพาร์ติชั่นYและการปรับแต่งพาร์ติชั่นXอีกอันถ้าXสามารถหาได้จากYโดยการรวมกลุ่มย่อยของมันเข้าด้วยกัน ดังนั้นBเป็นการปรับแต่งของA: Aถ้าเราเข้าร่วมครั้งแรกที่สองและทั้งสองรายการย่อยสุดท้ายกลับมารวมกันเราได้รับ แต่Cเป็นไม่ได้ปรับแต่งของAเราจะต้องแยกขึ้น9และ1เพื่อที่จะกู้คืนAจากมัน นอกจากนี้พาร์ติชันใด ๆ ก็มีการปรับแต่งเล็กน้อย โปรดทราบว่าเราไม่ได้รับอนุญาตให้จัดเรียงรายการย่อยหรือองค์ประกอบใหม่อีกครั้ง ความท้าทาย ป.ร. ให้ไว้สองพาร์ทิชัน (รายชื่อของรายการของจำนวนเต็ม) XและYตรวจสอบว่าเป็นการปรับแต่งของYX คุณอาจคิดว่าพาร์ติชั่นจะมีจำนวนเต็มตั้งแต่0ถึง9รวม คุณต้องไม่สมมติXและYเป็นพาร์ทิชันของรายการเดียวกัน (ถ้าไม่ใช่พวกเขาจะไม่ปรับแต่งซึ่งกันและกัน) Xและ / หรือYอาจว่างเปล่า แต่จะไม่มีรายการย่อยที่ว่างเปล่า …

8
กระโดดข้ามแถว!
ลองเล่นเกมที่ผู้เล่นคนหนึ่งที่เรียกว่ากระโดดอาร์เรย์ ในการเล่นคุณต้องใช้อาร์เรย์ของจำนวนเต็มaเท่านั้น คุณเริ่มที่บางตำแหน่งiและในแต่ละตาคุณจะข้ามไปยังตำแหน่งใหม่ ที่เปิดn, ถ้าnเป็นแม้กระทั่งคุณจะกระโดดไปยังตำแหน่งที่แน่นอนa[i] mod length(a), ถ้าแปลกที่คุณจะกระโดดไปยังตำแหน่งญาติn(i + a[i]) mod length(a) การจัดทำดัชนีอาร์เรย์เริ่มต้นที่ศูนย์ คุณสามารถนับการกระโดดครั้งแรกเป็นเทิร์น0หรือเทิ1ร์นซึ่งให้เกมอื่น เนื่องจากพื้นที่ของเกมนั้นมี จำกัด (การเคลื่อนไหวของคุณถูกกำหนดโดยตำแหน่งของคุณและความเท่าเทียมกันของจำนวนรอบ) คุณจะต้องเข้าสู่วงที่มีความยาวเท่ากัน แสดงว่าโดยความยาวของวงนี้เมื่อกระโดดครั้งแรกนับเป็นเปิดloop(a, i, b)b อินพุต อาร์เรย์aจำนวนเต็มที่ไม่มีข้อ จำกัด ในการเล่นเกมด้วย เอาท์พุต จำนวนสูงสุดpดังกล่าวว่าเมื่อเริ่มต้นในบางตำแหน่งiและนับเป็นครั้งแรกที่เปิดอย่างใดอย่างหนึ่ง0หรือคุณที่สุดใส่ห่วงความยาว1 2 * pอีกนัยหนึ่งผลลัพธ์ของคุณคือจำนวน max { loop(a, i, b)/2 : i in [0 .. length(a)-1], b in [0,1] } กฎระเบียบ คุณสามารถให้ฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบ จำนวนไบต์ที่น้อยที่สุดชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต กรณีทดสอบ [0] …

13
เลเยอร์ Sierpinski
เริ่มต้นด้วย/\คุณสามารถสร้างสามเหลี่ยมเช่นเดียวกับรูปแบบSierpinskiโดยการเพิ่มบรรทัดด้านล่างที่ ... กิ่งก้านที่หลวม/หรือ\แยกอีกเป็นสองกิ่ง: /\. การชนกันของกิ่งไม้\/จะตายโดยไม่มีสิ่งใด (ยกเว้นที่ว่าง) ภายใต้กิ่งไม้ ทำซ้ำกฎเหล่านี้ให้ผล /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ etc... ( แรงบันดาลใจจาก ViHart ) เขียนโปรแกรมหรือฟังก์ชั่นที่รับจำนวนเต็มบวก N และพิมพ์บรรทัด N แรกของรูปแบบนี้ไปยัง stdout โดยไม่มีช่องว่างนำหน้าหรือต่อท้ายเกินกว่าที่จำเป็น ตัวอย่างเช่นถ้าอินพุตเป็น1เอาต์พุตต้องเป็น /\ หากอินพุตเป็น2เอาต์พุตจะต้องเป็น /\ /\/\ หากอินพุตเป็น8เอาต์พุตจะต้องเป็น /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ /\ /\ /\ /\ /\/\/\/\/\/\/\/\ และอื่น …

30
สร้างอาร์เรย์ที่มีตัวเลขซ้ำกัน
ท้าทาย งานของคุณในคำถามนี้คือการเขียนโปรแกรมหรือฟังก์ชั่นที่มีชื่อซึ่งใช้จำนวนเต็มบวกn(มากกว่า 0) เป็นอินพุตผ่าน STDIN, ARGV หรือฟังก์ชั่นการขัดแย้งและส่งออกอาร์เรย์ผ่าน STDOUT หรือฟังก์ชั่นกลับค่า ฟังดูง่ายพอใช่ไหม ตอนนี้ที่นี่เป็นกฎ อาร์เรย์จะมีจำนวนเต็มตั้งแต่1ถึงn แต่ละจำนวนเต็มตั้งแต่1ถึงnควรซ้ำหลายxครั้งซึ่งxเป็นค่าของจำนวนเต็มแต่ละค่า ตัวอย่างเช่น: การป้อนข้อมูล: 5 เอาท์พุท: [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5] อาเรย์อาจจะเรียงหรือไม่ก็ได้ นี่คือโค้ดกอล์ฟดังนั้นผู้ชนะคือรหัสที่สั้นที่สุดในหน่วยไบต์ โบนัส คูณคะแนนของคุณด้วย0.5หากไม่มีจำนวนเต็มสองจำนวนที่อยู่ติดกันในอาร์เรย์ผลลัพธ์ของคุณเหมือนกัน ตัวอย่างเช่นสำหรับn = 5หนึ่งการกำหนดค่าดังกล่าวจะเป็น [5, 4, 5, 4, 3, 4, 5, 2, 5, 3, 1, …

24
ตรวจสอบอาร์เรย์อุโมงค์ของฉัน
ลองนึกภาพคุณมีอาร์เรย์ของจำนวนเต็มซึ่งมีค่าที่ไม่เป็นลบเป็นตัวชี้ไปยังตำแหน่งอื่นในอาร์เรย์เดียวกันเฉพาะค่าที่เป็นตัวแทนของอุโมงค์ดังนั้นถ้าค่าในตำแหน่ง A เป็นค่าบวกและชี้ไปที่ตำแหน่ง B ดังนั้นค่าในตำแหน่ง B จะต้องเป็นบวกและชี้ไปที่ตำแหน่ง A เพื่อแสดงปลายทั้งสองของอุโมงค์ ดังนั้น: ท้าทาย ให้อาเรย์ของจำนวนเต็มตรวจสอบว่าอาเรย์นั้นสอดคล้องกับข้อ จำกัด ในการเป็นอาเรย์อุโมงค์และคืนค่าสองค่าที่ชัดเจนและสอดคล้องกันสำหรับความจริงและเท็จ ค่าในอาร์เรย์จะต่ำกว่าศูนย์สำหรับตำแหน่งที่ไม่ใช่ช่องสัญญาณและศูนย์หรือสูงกว่าสำหรับตำแหน่งช่องสัญญาณ หากอาร์เรย์ของคุณมีการจัดทำดัชนีไว้ 1 รายการค่าศูนย์จะแสดงถึงตำแหน่งที่ไม่ใช่ช่องสัญญาณ ไม่จำเป็นต้องตรวจสอบค่าที่ไม่ใช่ช่องสัญญาณ หากค่าบวกในเซลล์ชี้ไปที่ตัวเองนั่นเป็นความเท็จ ถ้า A ชี้ไปที่ B, B ถึง C และ C ถึง A นั่นเป็นความเท็จ หากค่าบวกคะแนนเกินขีด จำกัด ของอาร์เรย์นั่นเป็นเท็จ ตัวอย่าง ตัวอย่างต่อไปนี้เป็นดัชนี 0: [-1, -1, -1, 6, -1, -1, 3, -1, -1] Truthy (position 3 …

8
จัดเรียงตามบล็อกแบบสับ
บล็อกการเรียงลำดับแบบสุ่ม การเรียงบล็อกแบบสุ่มเป็นวิธีการ (ค่อนข้างจะเป็นการประดิษฐ์) ในการจัดเรียงรายการ มันทำงานได้ดังแสดงในตัวอย่าง [6, 1, 0, 3, 2, 4, -2, -1] Break list into contiguous blocks [6][1, 0][3, 2, 4][-2, -1] Sort each block [6][0, 1][2, 3, 4][-2, -1] Sort blocks lexicographically [-2, -1][0, 1][2, 3, 4][6] Concatenate [-2, -1, 0, 1, 2, 3, 4, 6] สามารถแบ่งพาร์ติชันไปยังบล็อกที่ต่อเนื่องกันได้ อย่างไรก็ตามตัวเลือกทั้งหมดของบล็อกจะไม่ให้รายการเรียงลำดับในตอนท้าย: …

10
เรียงลำดับรายการเป็นเมทริกซ์น้อยที่สุด
รับรายการที่ไม่เรียงลำดับของจำนวนเต็มบวกที่ไม่ซ้ำกันอย่างเคร่งครัดโดยเรียงลำดับลงในเมทริกซ์ 2D รายการป้อนข้อมูลที่รับประกันได้ว่าจะมีความยาวคอมโพสิตซึ่งหมายความว่าเมทริกซ์ที่ส่งออกไม่จำเป็นต้องเป็นตาราง แต่มีขนาดที่มีn x mn,m > 1 "Minimally sort" ที่นี่หมายถึงสิ่งต่อไปนี้: เรียงลำดับรายการตามลำดับจากน้อยไปหามาก กระชับเมทริกซ์เอาต์พุตให้มากที่สุด - ลดผลรวมของมิติของเมทริกซ์ (ตัวอย่างเช่นสำหรับ20องค์ประกอบอินพุตเช่นอินพุตต้องใช้เมทริกซ์เอาท์พุท5x4หรือ4x5เมทริกซ์และไม่ใช่ก2x10) กระชับจำนวนที่เรียงแล้วไปทางซ้ายบนของเมทริกซ์ให้มากที่สุดเริ่มต้นด้วยองค์ประกอบแรกในรายการที่เรียงลำดับ นี่อาจเป็นวิธีการเรียงลำดับรายการจากนั้นก็แบ่งมันตามแนวต้านของเส้นทแยงมุมเริ่มจากด้านซ้ายบน ตัวอย่าง: สำหรับอินพุต1..20เอาต์พุตเป็นเมทริกซ์ 5x4 หรือ 4x5 ดังนี้: 1 2 4 7 11 3 5 8 12 15 6 9 13 16 18 10 14 17 19 20 1 2 4 7 3 5 …

1
Advent Challenge 1: ช่วยซานต้าปลดล็อกห้องนิรภัยของเขาในปัจจุบัน!
ถัดไป >> คำหลักที่สื่อความหมาย (สำหรับการค้นหา): สร้างสอง Matrices Equivalent, Overlap, Array, Find ท้าทาย ซานต้ามีประวัติของเอลฟ์ที่ขโมยของขวัญจากห้องนิรภัยของเขาในอดีตดังนั้นในปีนี้เขาได้ออกแบบกุญแจที่ยากต่อการถอดรหัส น่าเสียดายที่เขาสูญเสียชุดค่าผสมและเขาไม่สามารถหาวิธีเปิดได้! โชคดีที่เขาจ้างคุณให้เขียนโปรแกรมเพื่อค้นหาชุดค่าผสม ไม่จำเป็นต้องสั้นที่สุด แต่เขาต้องการค้นหาให้เร็วที่สุด! เขามีตารางงานที่เข้มงวดมากและเขาไม่สามารถรอได้นานมาก คะแนนของคุณจะเป็นจำนวนรันไทม์ทั้งหมดของโปรแกรมของคุณคูณด้วยจำนวนขั้นตอนที่โปรแกรมของคุณแสดงผลสำหรับอินพุตการให้คะแนน คะแนนต่ำสุดชนะ ข้อมูลจำเพาะ ล็อคเป็นเมทริกซ์จตุรัส 1s และ 0s มันถูกตั้งค่าเป็นการจัดเรียงแบบสุ่มของ 1s และ 0s และต้องถูกตั้งค่าเป็นรหัสที่ระบุ โชคดีที่ซานต้าจดจำรหัสที่ต้องการได้ มีไม่กี่ขั้นตอนที่เขาสามารถทำได้ แต่ละขั้นตอนสามารถดำเนินการกับเมทริกซ์ย่อยที่ต่อเนื่องกัน (นั่นคือคุณต้องเลือกเมทริกซ์ย่อยที่ล้อมรอบทั้งหมดด้วยมุมบนซ้ายและขวาล่าง) (อาจเป็นเมทริกซ์ย่อยที่ไม่ใช่สแควร์): หมุนไปทางขวา 90 องศา * หมุนซ้าย 90 องศา * หมุน 180 องศา วนรอบnองค์ประกอบแต่ละแถวทางซ้ายหรือขวา (แรป) วนmองค์ประกอบแต่ละคอลัมน์ขึ้นหรือลง (wraps) พลิกแนวนอน …

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