คำถามติดแท็ก path-finding

ปัญหาในเรขาคณิตหรือกราฟทฤษฎีที่เกี่ยวข้องกับการหาเส้นทางที่เหมาะสมที่สุด (เช่นสั้นที่สุด) ภายใต้ข้อ จำกัด (อุปสรรค)

2
ช่วยให้หุ่นยนต์ของเราไปถึงเครื่องเคลื่อนย้ายมวลสาร
UPDATE: เพิ่มเฟรมเวิร์ก Python เพื่อเริ่มต้น สถานีอวกาศถูกแซงโดยบ็อตคั้น คุณต้องนำบอทเทคราคาแพงและเปราะบางของเราจำนวนมากที่เรียกว่า "กระต่าย" ไปยังเทเลพอร์เตอร์ทางออกก่อนที่สถานีจะทำลายตัวเอง แต่บอทบ็อตกำลังลาดตระเว ณ ทางเดิน โปรแกรมของคุณจะได้รับแผนที่ ASCII และทุกเทิร์นจะได้รับการบอกตำแหน่งของ crusher-bots และกระต่ายปัจจุบันของคุณ โปรแกรมของคุณควรย้ายกระต่ายของคุณไปที่เครื่องเคลื่อนย้ายมวลสารทางออกในขณะที่หลีกเลี่ยงการบดขยี้บ็อต การกระทำ เรียกใช้คอนโทรลเลอร์ Python 2 ด้วย: python controller.py <mapfile> <turns> <seed> <runs> <prog>... <prog> can be <interpreter> <yourprog> or similar. seed เป็นจำนวนเต็มขนาดเล็กที่ใช้สำหรับเครื่องบดและโปรแกรม PRNG ของคุณเพื่อให้สามารถทำงานซ้ำได้ โปรแกรมของคุณควรทำงานอย่างสม่ำเสมอโดยไม่คำนึงถึงเมล็ดที่ใช้จริง หากเมล็ดเป็นศูนย์ตัวควบคุมจะใช้เมล็ดพันธุ์แบบสุ่มสำหรับการวิ่งแต่ละครั้ง ตัวควบคุมจะเรียกใช้โปรแกรมของคุณด้วยชื่อของไฟล์ข้อความแผนที่และ seed เป็นอาร์กิวเมนต์ เช่น: perl wandomwabbits.pl large.map 322 …

2
การขาดแคลนอาหารใน Snakepit
การขาดแคลนอาหารใน Snakepit เป็นครั้งแรกในรอบ 35 ปีที่ snakepit หมดอาหาร งูที่อาศัยอยู่ในขณะนี้จะต้องต่อสู้กันเพื่อให้สามารถอยู่รอดการขาดแคลนอาหารนี้ มีงูหนึ่งตัวเท่านั้นที่สามารถยืนอยู่บนห่วงโซ่อาหาร ลีดเดอร์บอร์ด ไม่ได้อยู่ที่นี่! อัปเดตล่าสุดเมื่อวันที่ 24 กุมภาพันธ์ ลิงก์ไปยังการสร้างภาพข้อมูลของการแข่งขันครั้งสุดท้าย ลักษณะ หากคุณต้องการต่อสู้เพื่อแอปเปิ้ล / เชอร์รี่ / สิ่งที่เหลืออยู่สุดท้ายคุณต้องเตรียมงูในรูปแบบของโปรแกรมที่รับอินพุตที่กำหนดและส่งกลับการเคลื่อนที่ครั้งต่อไป สิ่งเดียวที่ทำให้คุณไม่ได้อยู่คนเดียวในหลุม งูอีกตัวจะพยายามหาอาหารที่หายากด้วย! แต่มันมืดอยู่ข้างใน Snakepit ดังนั้นคุณจะเห็นได้แค่ตัวคุณและแอปเปิ้ลเท่านั้น การปะทะกับคู่ต่อสู้ของคุณจะส่งผลให้คุณเสียชีวิตเช่นกัดตัวเองหรือกระแทกกำแพง นอกจากนี้เนื่องจากแอปเปิ้ลเป็นของหายากในวันนี้คุณต้องอดอาหารถ้าคู่ต่อสู้ของคุณกินพอถึงความยาว 7 Snakepit เป็นแผนที่สองมิติที่มีความกว้างและความสูง 15 ในขณะที่กระเบื้องชั้นนอกสุดสร้างกำแพงที่ไม่สามารถใช้ได้: 0 1 2 . . . c d e 0 # # # # # # # …

16
น้ำหนักของเส้นทาง ROD ถ่วงน้ำหนักน้อยที่สุด
อนุญาตAจะเป็นmโดยnเมทริกซ์รูปสี่เหลี่ยมผืนผ้าบวกเลขที่mและnนอกจากนี้ยังมีในเชิงบวกจำนวนเต็ม เราสนใจเส้นทาง RoD ('Right-or-Down') จากเซลล์ซ้ายบนของAไปยังเซลล์ล่างขวา; ในเส้นทาง RoD แต่ละเซลล์ที่ต่อเนื่องของเส้นทางจะเป็นเซลล์เดียวไปทางขวาหรือเซลล์เดียวลงจากเซลล์ก่อนหน้า ด้วยเส้นทาง RoD ใด ๆ เราสามารถหาผลรวมของเซลล์ในAเส้นทางนั้น ตัวอย่างเช่นพิจารณาเมทริกซ์ 4 คูณ 3: [ [1, 2, 3, 4], [5, 1, 6, 7], [8, 2, 1, 1] ] จากนั้นเราสามารถพิจารณาเส้นทาง RoD: 1 > 2 3 4 v 5 1 6 7 v 8 2 > 1 > 1 …

1
ช่วยพัฒนาตัวต่อใหม่ล่าสุดของ Alphys!
Alphys นักวิทยาศาสตร์ระดับสูงของ Underground ได้สร้างต้นแบบสำหรับปริศนาตัวใหม่เสร็จแล้ว อย่างไรก็ตามเธอดูเหมือนจะไม่พบใครที่ต้องการทดสอบ กฎของตัวต่อมีดังนี้: เป้าหมายคือการไปทางด้านขวาเริ่มต้นจากแผ่นกระเบื้องศูนย์กลางด้านซ้าย สำหรับปริศนาที่มีตัวเลขสูงให้เริ่มที่ด้านล่างของแผ่นกลางสองแผ่น (ตัวอย่าง: ในอาร์เรย์ 4x4 ที่ทำดัชนีเป็นศูนย์ตำแหน่งเริ่มต้นจะเป็น [2,0] - แถว 2, คอลัมน์ 0 ในอาร์เรย์ 5x5 ที่มีดัชนีเป็นศูนย์ตำแหน่งเริ่มต้นจะเป็น [2,0] - แถว 2, คอลัมน์ 0. ) กระเบื้องแต่ละสีมีฟังก์ชัน "ซาดิสต์" ของตัวเอง: กระเบื้องสีชมพูและสีเขียว (แสดงเป็น "P" และ "G") ไม่ทำอะไรเลย กระเบื้องสีแดงและสีเหลือง ("R", "Y") ไม่สามารถใช้ได้ กระเบื้องส้ม ("O") ทำให้ผู้เล่นมีกลิ่นเหมือนส้ม กระเบื้องสีม่วง ("U") บังคับให้ผู้เล่นไปยังแผ่นถัดไปในทิศทางที่พวกเขากำลังเผชิญอยู่และทำให้พวกเขามีกลิ่นเหมือนมะนาว กระเบื้องสีฟ้า ( "B") …

2
ไก่ข้ามถนนได้อย่างไร
ส่งเสียงกระต๊าก ไม่มีใครรู้ว่าทำไมไก่ถึงข้ามถนนบางทีอาจมีไก่ที่ดูดีอยู่อีกด้านหนึ่ง แต่เราสามารถหาวิธีได้ เขียนโปรแกรมที่จากซ้ายไปขวาข้าม "ถนน" นี้ (หรือใด ๆ ) 1356 | 1738 3822 | 1424 3527 3718 9809 | 5926 0261 | 1947 7188 4717 6624 | 9836 4055 | 9164 2636 4927 5926 | 1964 3144 | 8254 โปรแกรมของคุณ "ข้าม" โดยเลื่อนจากซ้ายไปขวา คุณเริ่มจากหมายเลขใดก็ได้ในคอลัมน์ซ้ายสุดที่คุณต้องการ จากตรงนั้นคุณสามารถย้ายไปยังอักขระที่อยู่ติดกันทางด้านขวา หากคุณเริ่มต้นที่มุมซ้ายบน 1 คุณสามารถไปที่ 3 หรือ 8 …

9
เส้นทางที่สั้นที่สุดของ Portal Maze
เป้าหมายของคุณคือการเขียนโปรแกรมที่สร้างแบบสุ่ม 10x10 แผนที่ใช้0, 1และ2และพบว่าเส้นทางที่สั้นที่สุดจากด้านบนซ้ายไปขวาล่างสมมติว่า: 0หมายถึงทุ่งหญ้า: ใคร ๆ ก็สามารถเดินไปได้ 1หมายถึงกำแพง: คุณไม่สามารถข้ามได้ 2หมายถึงพอร์ทัล: เมื่อเข้าสู่พอร์ทัลคุณสามารถย้ายไปที่พอร์ทัลอื่นในแผนที่ รายละเอียด: องค์ประกอบด้านซ้ายบนและด้านล่างขวาหนึ่งจะต้อง0 ; เมื่อสร้างแผนที่แบบสุ่มทุกฟิลด์ควรมีโอกาส 60% ที่จะเป็น0 , 30% ของการเป็น1และ 10% ของการเป็น2 ; คุณสามารถย้ายในเขตข้อมูลที่อยู่ติดกัน (แม้แต่เส้นทแยงมุม); โปรแกรมของคุณควรแสดงแผนที่และจำนวนขั้นตอนของเส้นทางที่สั้นที่สุด หากไม่มีเส้นทางที่ถูกต้องซึ่งนำไปสู่ฟิลด์ล่างขวาโปรแกรมของคุณควรแสดงแผนที่เท่านั้น คุณสามารถใช้ทรัพยากรใด ๆ ที่คุณต้องการ; รหัสที่สั้นที่สุดชนะ การคำนวณขั้นตอน: ขั้นตอนเป็นการเคลื่อนไหวจริง ทุกครั้งที่คุณเปลี่ยนฟิลด์คุณจะเพิ่มตัวนับ เอาท์พุท: 0000100200 0100100010 1000000111 0002001000 1111100020 0001111111 0001001000 0020001111 1100110000 0000020100 9

1
ผู้ตั้งถิ่นฐานแห่ง Catan - ถนนที่ยาวที่สุด!
นี่คือบอร์ด endgame ของ Settlers of Catan: พื้นหลัง: ถนน (ชิ้นส่วนแท่งยาว) และการตั้งถิ่นฐาน (และเมือง) ถูกสร้างขึ้นโดยกระท่อมเล็ก ๆ เราเข้ารหัสการจัดวางชิ้นส่วนเหล่านี้โดยใช้รูปแบบต่อไปนี้: จากด้านบนเรามีจุดยอดและแนวนอนแนวนอนที่สามารถวางถนนได้ จากนั้นเรามีคอลัมน์ของถนนเท่านั้นและอื่น ๆ การใช้ R สำหรับสีแดง, O สำหรับออเรนจ์และ B สำหรับ Blue และ _ เพื่ออะไรเลยบอร์ดภาพจะถูกเข้ารหัสเป็น: ________RR_R_ __R_ __RR_R_RRR_____R_ B___R _B_________B__OO_OOR_ B__B_R BB_BBB_____B____RR_R_ OBB_O OO__BB_BB__OOO_OO O_O_ _O_OOO_O_____ บอร์ดแบบนี้จะเป็นสตริงอินพุตของคุณ ตัวอักษรใด ๆ[A-Z]อาจบ่งบอกถึงสีของผู้เล่น แต่จะมีได้ไม่เกินสี่สี มิฉะนั้นบอร์ดรับประกันว่าจะถูกต้องตามกฎของ Settlers ซึ่งหมายถึง: แต่ละสีจะมีเครือข่ายถนนที่ต่อเนื่องกันไม่เกินสองเครือข่ายซึ่งอาจหรือไม่อาจแยกออกจากการตั้งถิ่นฐาน / เมืองของผู้เล่นคนอื่น (อาคารจุดสุดยอด) …

5
หมาป่าและไก่
มีแม่น้ำและมีหมาป่าและไก่อยู่อีกฟากหนึ่งของแม่น้ำ พวกเขามีแพและพวกเขาทั้งหมดต้องไปที่อีกด้านหนึ่ง อย่างไรก็ตามแพไม่สามารถเดินทางได้ด้วยตัวเอง แพจะจมถ้ามีสัตว์มากกว่าสองตัวอยู่บนมัน ไม่มีสัตว์ชนิดใดที่ต้องการเปียกเพราะแม่น้ำเย็นและสกปรก ไม่มีสัตว์ชนิดใดสามารถกระโดดหรือบินข้ามแม่น้ำได้ นอกจากนี้หากมีไก่อยู่ด้านหนึ่งก็จะไม่มีหมาป่าอยู่ข้างนั้นมากกว่าที่มีไก่อยู่ข้างนั้น - หมาป่าก็จะตัดสินใจกินไก่ ซึ่งหมายความว่าคุณไม่สามารถนำหมาป่าสองตัวขึ้นไปบนแพด้วยไก่หนึ่งตัว งานของคุณคือการสร้างโปรแกรม / ฟังก์ชั่นที่ใช้จำนวนหมาป่าและไก่จำนวนหนึ่ง (มากกว่าหรือเท่ากับจำนวนหมาป่า) เป็นอินพุตและหาจำนวนครั้งที่แพที่เล็กที่สุดจะเคลื่อนที่ข้ามแม่น้ำ หากไม่สามารถทำงานได้โปรแกรม / ฟังก์ชั่นควรแสดงผล / ส่งคืนสตริงว่าง จากนั้นจะพิมพ์ / ส่งคืนหนึ่งวิธีสำหรับวิธีนี้ในวิธีต่อไปนี้: W if a wolf crosses the river on its own C if a chicken crosses the river on its own CW if a chicken and a wolf …

4
เส้นทางที่สั้นที่สุดในกราฟตัวหาร
บทนำ ในความท้าทายนี้เราจะจัดการกับบางกราฟไม่มีทิศทางที่ไม่มีที่สิ้นสุดซึ่งผมเรียกว่ากราฟหารสูง ต่อมน้ำมันเป็นจำนวนเต็มเริ่มตั้งแต่วันที่ 2 มีขอบอยู่ระหว่างสองโหนด<bถ้าแบ่งขและ2 ≥ข กราฟย่อยที่เกิดขึ้นจากช่วง 2 ถึง 18 มีลักษณะดังนี้: 16-8 12 18 \|/ |/| 4 6 9 10 15 14 | |/ |/ | 2 3 5 7 11 13 17 สามารถแสดงให้เห็นว่ากราฟตัวหารสูงที่ไม่มีที่สิ้นสุดเชื่อมต่อกันดังนั้นเราสามารถถามเกี่ยวกับเส้นทางที่สั้นที่สุดระหว่างสองโหนด อินพุตและเอาต์พุต ปัจจัยการผลิตของคุณเป็นจำนวนเต็มสองจำนวนและข คุณสามารถสรุปได้ว่า2 ≤≤ข <1000 เอาต์พุตของคุณคือความยาวของเส้นทางที่สั้นที่สุดระหว่างaและbในกราฟตัวหารสูงที่ไม่มีที่สิ้นสุด นี่หมายถึงจำนวนขอบในเส้นทาง คุณอาจจะพบความจริงต่อไปนี้มีประโยชน์: มีอยู่เสมอเส้นทางที่ดีที่สุดจากเพื่อขที่แรกที่เพิ่มขึ้นและลดลงแล้วและมีเพียงโหนดเข้าชมที่เป็นอย่างเคร่งครัดน้อยกว่า2b 2 โดยเฉพาะอย่างยิ่งตั้งแต่b <1,000คุณจะต้องพิจารณาโหนดที่น้อยกว่า 2 000 000 ตัวอย่าง …

2
ฉันจะได้รับ Klotski มากขึ้นในชีวิตของฉันได้อย่างไร
ฉันชอบปริศนาตัวต่อแบบเลื่อน แต่เมื่อไม่นานมานี้ฉันไม่มีเวลา ดังนั้นฉันต้องการโปรแกรมที่จะให้ฉันแก้ปริศนาเลื่อนกระเบื้องโดยเฉพาะอย่างยิ่งปริศนา Klotski ข้อมูลที่คุณป้อนจะอยู่ในรูปแบบต่อไปนี้: ####### #001gg# ##.222# .###### โดยที่#หมายถึงผนัง.หมายถึงพื้นที่เปิดโล่งgหมายถึงเป้าหมายและตัวเลขที่อยู่ติดกันแสดงถึงบล็อกที่แตกต่างกัน คุณสามารถสันนิษฐานได้ว่า: จะมีไม่เกิน 10 บล็อก จะไม่มีสองช่วงตึกที่มีหมายเลขเดียวกัน บล็อคทั้งหมดจะถูกล้อมรอบด้วยกำแพง ตารางเป็นรูปสี่เหลี่ยมผืนผ้า 0บล็อกที่มีขนาดใหญ่พอที่จะครอบคลุมทั้งหมดของสี่เหลี่ยมเป้าหมาย มีทางออกที่ถูกต้อง คุณต้องกลับลำดับการเคลื่อนไหวที่จะทำให้0บล็อกเพื่อให้ครอบคลุมสี่เหลี่ยมเป้าหมายทั้งหมด บล็อกไม่สามารถผ่านผนังหรือบล็อกอื่น ๆ สำหรับปริศนาข้างต้นลำดับที่เหมาะสมจะเป็น 2L,1R,1R,1D,0R,0R,0R ในขณะที่หมายถึงการเคลื่อนย้าย2บล็อก 1 ตารางไปทางซ้าย1บล็อก 2 สี่เหลี่ยมทางขวา (ด้านบนของเป้าหมาย) จากนั้นลง 1 ตารางเมตรจากนั้น0บล็อก 3 สี่เหลี่ยมทางขวา จริงๆแล้วมีหลายลำดับที่จะทำงานให้กับปัญหาข้างต้นและการผลิตใด ๆ ของพวกเขาเป็นที่ยอมรับ คำตอบของคุณควรจะดีที่สุดซึ่งหมายความว่าควรสร้างลำดับที่แก้ปริศนาได้ในไม่กี่ขั้นตอนเท่าที่จะทำได้ ลำดับควรจะพิมพ์ออกมาข้างต้น แต่สามารถคั่นด้วยเครื่องหมายจุลภาค, ขึ้นบรรทัดใหม่หรือช่องว่าง ฉันไม่สนหรอกว่ามีคอมม่าต่อท้ายหรือช่องว่าง คุณควรสร้างผลลัพธ์ในเวลาที่เหมาะสม (สูงสุด 120 วินาทีกับปริศนาด้านล่าง) ปริศนา 1: ..####.. …

3
เชื่อมช่องว่าง
เมื่อกำหนดภาพขาวดำที่มีพื้นหลังสีขาวและชุดจุดสีดำให้ทาสีชุดพิกเซลสีขาวสีแดงเพื่อให้มีเส้นทางระหว่างพิกเซลสีดำแต่ละคู่ รายละเอียด เส้นทางคือชุดของพิกเซลที่เชื่อมต่อ (การเชื่อมต่อ 8-Neighborhood) พิกเซลสีดำสามารถใช้เป็นส่วนหนึ่งของเส้นทาง เป้าหมายพยายามลดจำนวนพิกเซลสีแดงให้น้อยที่สุดภายใต้เงื่อนไขข้างต้นและแสดงภาพที่สอดคล้องกัน คุณไม่ต้องไปหาทางแก้ปัญหาที่ดีที่สุด วิธีแก้ปัญหาที่เลวร้ายที่สุดและในเวลาเดียวกันนั้นก็แค่ทาสีขาวพิกเซลสีแดงทั้งหมด ตัวอย่าง (ขยายพิกเซลเพื่อให้มองเห็นได้): รายละเอียด รับภาพพิกเซล (ในรูปแบบที่เหมาะสม) ส่งคืนรูปภาพอื่นที่มีจุดเชื่อมต่อตามที่ระบุข้างต้นรวมทั้งจำนวนเต็มที่ระบุว่ามีการใช้พิกเซลสีแดงจำนวนเท่าใด คะแนนเป็นผลคูณของ (1 + จำนวนพิกเซลสีแดง) สำหรับแต่ละการทดสอบ 14 ครั้ง เป้าหมายคือการมีคะแนนต่ำสุด Testcases รายการทดสอบทั้ง 14 ชุดแสดงอยู่ด้านล่าง โปรแกรมไพ ธ อนเพื่อตรวจสอบการเชื่อมต่อของเอาต์พุตสามารถพบได้ที่นี่ Meta ขอบคุณ @Veskah, @Falize, @ wizzwizz4 และ @trichoplax สำหรับคำแนะนำต่างๆ

3
ค้นหาพื้นที่จอดรถฟรีหลายระดับ
คำนำที่เกี่ยวข้องกับเด็ก ๆ เมื่อใดก็ตามที่ฉันพาลูก ๆ ไปที่สวนสนุกเด็ก ๆ จะรู้สึกประหม่ามากขึ้นเมื่อเราอยู่ใกล้กับสวนสาธารณะด้วยจุดสูงสุดของเส้นประสาทเมื่อเราอยู่ในลานจอดรถและไม่พบที่จอด ดังนั้นฉันจึงตัดสินใจว่าฉันต้องการวิธีในการหาพื้นที่จอดรถที่ใกล้ที่สุดเพื่อลดเวลาที่จอดรถให้น้อยที่สุด คำแนะนำทางเทคนิค ลองนึกภาพการเป็นตัวแทนของที่จอดรถแบบนี้: ***************** * * * ··CC··C··CC·· * * ************* * * ··CCCCCCCCC·· * * * **********E****** ในการเป็นตัวแทนนี้หมาย*ถึงกำแพงที่·จอดรถฟรีEจุดเข้าและCรถที่จอดอยู่แล้ว ทุกช่องว่างเป็นตำแหน่งที่จอดรถสามารถใช้เพื่อเคลื่อนที่ไปรอบ ๆ ลานจอดรถ ตอนนี้เราจะขยายแนวคิดนี้เป็น 3D เพื่อสร้างที่จอดรถหลายระดับ: 1st floor 2nd floor 3rd floor 4th floor ***************** ***************** ***************** ***************** * 1 * 2 * 3 …

1
รถแท็กซี่ในซานฟรานซิสโก
คุณเป็นนักขับรถแท็กซี่ในซานฟรานซิสโก ในฐานะที่เป็นเรื่องปกติของคนขับรถแท็กซี่คุณกำลังนำทางกริดที่ทิศทางที่ถูกต้องเท่านั้นที่คุณสามารถเคลื่อนย้ายได้คือด้านซ้ายขวาขึ้นและลง อย่างไรก็ตามซานฟรานซิสโกเป็นเนินเขามากดังนั้นระยะห่างระหว่างสี่แยกที่อยู่ติดกันไม่จำเป็นต้องเหมือนกัน โดยเฉพาะอย่างยิ่งระยะห่างระหว่างจุดตัดที่ระดับความสูงaและสี่แยกที่อยู่ติดกันที่ระดับความสูงจะเป็นb 1 + |a - b|เป้าหมายของคุณคือค้นหาเส้นทางที่สั้นที่สุดจากต้นกำเนิดของคุณที่ด้านบนซ้ายของแผนที่ไปยังปลายทางที่ด้านล่างขวา อินพุต ตารางสองมิติของระดับความสูงของจำนวนเต็มในรูปแบบใดก็ได้ที่สะดวกที่สุด (อาร์เรย์สองมิติ, อาร์เรย์หนึ่งมิติที่มีความกว้างและ / หรือความสูง ฯลฯ ) เอาท์พุต ลำดับของเส้นทางที่จะเดินทางมาถึงที่มุมล่างขวาของการป้อนข้อมูลจากด้านบนที่เหลืออยู่ในระยะทางที่สั้นที่สุดที่กำหนดระยะห่างระหว่างสองทางแยกที่อยู่ติดกันมีระดับaและจะได้รับจากสูตรb 1 + |a - b|หากมีหลายทางออกโซลูชันทั้งหมด แม้ว่าฉันจะใช้U, D, LและRสำหรับขึ้นลงซ้ายและขวาในตัวอย่างด้านล่างโปรแกรมของคุณอาจจะใช้ใด ๆ สี่สายที่แตกต่างกันเพื่อเป็นตัวแทนของทิศทางตราบเท่าที่มันสอดคล้องกับพวกเขาในและทั่วทั้งปัจจัยการผลิตทั้งหมด ตัวอย่าง Input: 0 3 0 0 0 0 2 0 2 0 0 0 0 3 0 Output: D D R …

1
หมากฮอส: King Me?
ท้าทาย: ให้หมากฮอสเอาท์พุทจำนวนน้อยที่สุดเท่าที่มันจะเอา (สมมติว่าดำไม่ขยับเลย) กับกษัตริย์ชิ้นแดงถ้าเป็นไปได้ กฎ : ด้านข้างของสีแดงจะอยู่ด้านล่างเสมออย่างไรก็ตามชิ้นส่วนของพวกเขาอาจเริ่มต้นในแถวใดก็ได้ (แม้แต่แถวของกษัตริย์ที่พวกเขาต้องไป) ชิ้นส่วนสีดำนิ่งอยู่กับที่ซึ่งหมายความว่าพวกมันไม่เคลื่อนไหวระหว่างการเคลื่อนไหวของสีแดง แต่จะถูกลบออกจากกระดานเมื่อถูกจับ โปรดทราบว่าชิ้นส่วนสามารถเริ่มบนพื้นที่ใดก็ได้บนกระดานรวมถึงติดกัน นี่ไม่ใช่วิธีการเล่นตัวตรวจสอบปกติ แต่โปรแกรมของคุณจะต้องสามารถแก้ไขปัญหาเหล่านี้ได้ (ดูอินพุต 5) อย่างไรก็ตามตัวตรวจสอบจะต้องเคลื่อนที่ในแนวทแยงมุมเท่านั้น(ดูอินพุต 3) อนุญาตให้ถ่ายภาพย้อนหลังได้หากการจับภาพครั้งแรกไปข้างหน้าในโซ่ (ดูอินพุต 7) การป้อนข้อมูล: กระดานหมากรุกขนาด 8x8 พร้อมช่องว่างของกระดานที่กำหนดเป็นอักขระต่อไปนี้ (อย่าลังเลที่จะใช้ตัวเลือกอื่นตราบใดที่มันยังมีความสอดคล้องกัน): . - ว่างเปล่า R - ชิ้นสีแดง B - ชิ้นสีดำ เอาท์พุท: ที่เล็กที่สุดจำนวนของการเคลื่อนไหวมันจะใช้ชิ้นส่วนสีแดงจะเป็น 'kinged' โดยการป้อนแถวของกษัตริย์แถวบนสุดของคณะกรรมการ (ด้านสีดำ) 0 ถ้าไม่มีการเคลื่อนไหวจะต้อง (ชิ้นสีแดงเริ่มต้นในแถวของกษัตริย์) หรือ ตัวเลขที่เป็นลบถ้ามันเป็นไปไม่ได้ที่จะเป็นราชาชิ้นสีแดง (เช่นสีดำตรงบริเวณนั้นเป็นแถวแรกทั้งหมด) อินพุต 1: . . . …

3
เส้นทางที่ยาวที่สุดบนเครื่องบิน 2d
คุณได้รับชุดค่าพิกัดอาร์บิทอล, ไม่ซ้ำกัน, 2d, จำนวนเต็มคาร์ทีเซียน: เช่น [(0,0), (0,1), (1,0)] ค้นหาเส้นทางที่ยาวที่สุดที่เป็นไปได้จากชุดพิกัดนี้โดยมีข้อ จำกัด ว่าพิกัดสามารถ "เยี่ยมชม" เพียงครั้งเดียว (และคุณไม่ได้ "กลับมา" เพื่อประสานงานที่คุณเริ่มต้น) สำคัญ: คุณไม่สามารถ "ส่งต่อ" พิกัดหรือรอบ ๆ ตัวอย่างเช่นในตัวอย่างบันทึกย่อล่าสุด (รูปสี่เหลี่ยมผืนผ้า) คุณไม่สามารถย้ายจาก D เป็น A โดยไม่ได้ไปที่ C (ซึ่งอาจเป็นการตรวจทานซ้ำ สิ่งนี้ชี้ให้เห็นโดย @FryAmTheEggman ฟังก์ชั่นอินพุต:อาร์เรย์ของพิกัดคาร์ทีเซียนแบบ 2d ฟังก์ชั่นเอาท์พุท:ความยาวสูงสุดเท่านั้น ผู้ชนะ: รหัสที่สั้นที่สุดชนะไม่มีการระงับ (ไม่ประหยัดเวลามากที่สุด) ตัวอย่าง 1 : ในกรณีนี้แสดงไว้ข้างต้นเส้นทางที่ยาวที่สุดที่ไม่มีพิกัด "เข้าชม" สองครั้งคือ A -> B -> O (หรือ …

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