คำถามติดแท็ก graph-theory

สำหรับความท้าทายเกี่ยวกับกราฟโครงสร้างทางคณิตศาสตร์ที่ใช้ในการสร้างแบบจำลองความสัมพันธ์ระหว่างวัตถุ

3
แก้ไขปัญหารถเข็น
นักปรัชญาได้ไตร่ตรองปัญหารถเข็นมานานแล้ว น่าเสียดายที่ยังไม่มีมนุษย์คนใดแก้ปัญหานี้ได้ โชคดีที่ในฐานะโปรแกรมเมอร์เราสามารถใช้คอมพิวเตอร์เพื่อแก้ปัญหาให้เราได้! อินพุต โปรแกรมของคุณจะทำหน้าที่ป้อนกราฟกำกับ (จำกัด ) (โดยมีขอบอย่างใดอย่างหนึ่งมากที่สุดจากxถึงถึงyสำหรับใด ๆxและy) พร้อมโหนดที่กำหนดและจำนวนเต็มที่ไม่ใช่ค่าลบที่แนบมากับแต่ละขอบ (แสดงถึงจำนวนคนที่ผูกติดกับแทร็กนั้น) . นอกจากนี้ทุกโหนดมี edge exit อย่างน้อยหนึ่งตัว รถเข็นเริ่มต้นที่โหนดที่กำหนด กลับกันถ้ารถเข็นที่โหนดx, (x,y)ประโยชน์เลือกขอบ yคนที่อยู่บนขอบที่ตายและรถเข็นอยู่ในขณะนี้ที่ขอบ กระบวนการนี้จะดำเนินต่อไปตลอดกาล โปรดทราบว่าผู้คนสามารถตายได้เพียงครั้งเดียวดังนั้นหากขอบ(x,y)มีnคนผูกไว้กับมันและรถเข็นวิ่งข้ามพวกเขาพูดว่า 100 ครั้งมันจะยังคงส่งผลให้เกิดการnเสียชีวิต เอาท์พุต ผู้ใช้ประโยชน์ได้เลือกในลักษณะที่จะลดจำนวนคนที่ตาย (ซึ่งรับประกันว่าจะมี จำกัด เนื่องจากมีเพียงคน จำกัด ) โปรแกรมของคุณจะแสดงผลหมายเลขนี้ รูปแบบอินพุต คุณอาจใช้กราฟอินพุตในแบบที่คุณต้องการ ตัวอย่างเช่นคุณสามารถใช้มันเป็นเมทริกซ์และนับโหนดที่กำหนดเป็นหนึ่งที่มีข้อความ 0. x1,y1,n1;x2,y2,n2;...หรือคุณอาจจะใช้สิ่งที่ต้องการ ตัวอย่างเช่น0,a,0;a,b,5;a,c,1;b,b,0;c,c,0เพื่อเป็นตัวแทนของปัญหารถเข็นมาตรฐาน (มีลูปที่ส่วนท้าย) Testcases 0,a,0;a,b,5;a,c,1;b,b,0;c,c,0 -> 1 (ไปจาก 0 ถึง a, a ถึง c …

3
คำนวณ Treewidth
ความน่าเชื่อถือของกราฟที่ไม่ได้บอกทิศทางเป็นแนวคิดที่สำคัญมากในทฤษฎีกราฟ อัลกอริธึมกราฟจำนวนมากได้รับการคิดค้นขึ้นมาซึ่งทำงานได้รวดเร็วหากคุณมีการสลายตัวของกราฟที่มีความกังวลเล็กน้อย treewidth มักจะถูกกำหนดในแง่ของการย่อยสลายต้นไม้ นี่คือกราฟและแผนภูมิย่อยสลายของกราฟความเอื้อเฟื้อจาก Wikipedia: การสลายตัวของต้นไม้เป็นต้นไม้ที่จุดยอดแต่ละจุดเชื่อมโยงกับเซตย่อยของจุดยอดของกราฟต้นฉบับด้วยคุณสมบัติดังต่อไปนี้: จุดยอดทุกอันในกราฟต้นฉบับจะอยู่ในเซตย่อยอย่างน้อยหนึ่งค่า ขอบทุกเส้นในกราฟดั้งเดิมมีจุดยอดทั้งคู่ในเซตย่อยอย่างน้อยหนึ่งค่า จุดยอดทั้งหมดในการสลายตัวที่มีส่วนย่อยประกอบด้วยจุดสุดยอดเดิมที่กำหนดมีการเชื่อมต่อ คุณสามารถตรวจสอบว่าการสลายตัวข้างต้นเป็นไปตามกฎเหล่านี้ ความกว้างของการย่อยสลายต้นไม้คือขนาดของเซตย่อยที่ใหญ่ที่สุดลบหนึ่ง ดังนั้นจึงเป็นเรื่องที่สองสำหรับการสลายตัวข้างต้น ความกว้างของกราฟคือความกว้างที่เล็กที่สุดของการย่อยสลายต้นไม้ของกราฟนั้น ในความท้าทายนี้คุณจะได้รับกราฟที่เชื่อมต่อและไม่มีทิศทางและคุณจะต้องพบความกังวล ในขณะที่การค้นหาการย่อยสลายต้นไม้เป็นเรื่องยากมีวิธีอื่นในการคำนวณ treewidth หน้าวิกิพีเดียมีข้อมูลเพิ่มเติม แต่วิธีหนึ่งในการคำนวณ treewidth ที่ไม่ได้กล่าวถึงซึ่งมักใช้ในอัลกอริทึมในการคำนวณ treewidth นั้นคือความกว้างขั้นต่ำในการกำจัด ดูที่นี่สำหรับกระดาษโดยใช้ข้อเท็จจริงนี้ ในการกำจัดการเรียงลำดับหนึ่งจะกำจัดจุดยอดทั้งหมดของกราฟทีละครั้ง เมื่อกำจัดจุดสุดยอดแต่ละจุดขอบจะถูกเพิ่มเข้ามาเชื่อมต่อกับเพื่อนบ้านของจุดสุดยอดทั้งหมดซึ่งกันและกัน สิ่งนี้ซ้ำจนกระทั่งจุดยอดทั้งหมดหายไป ความกว้างของการสั่งตัดเป็นจำนวนเพื่อนบ้านมากที่สุดที่จุดสุดยอดใด ๆ ที่ถูกกำจัดมีในระหว่างกระบวนการนี้ treewidth เท่ากับขั้นต่ำสำหรับการเรียงลำดับความกว้างของการคัดออกทั้งหมด นี่คือตัวอย่างโปรแกรมที่ใช้ข้อเท็จจริงนี้เพื่อคำนวณความน่าเชื่อถือ: import itertools def elimination_width(graph): max_neighbors = 0 for i in sorted(set(itertools.chain.from_iterable(graph))): neighbors = set([a for (a, b) …

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

1
การนับโซ่ของคันนิงแฮม
ตัวเลขที่สำคัญทำให้ผู้คนหลงใหล 2300 ปีที่แล้ว Euclid เขียนใน "Elements" ของเขา จำนวนเฉพาะคือสิ่งที่วัดโดยหน่วยเดียว ซึ่งหมายความว่านายกสามารถหารด้วย1(หรือด้วยตัวเอง) เท่านั้น ผู้คนมักจะมองหาความสัมพันธ์ระหว่างจำนวนเฉพาะและเกิดขึ้นกับบางสิ่งที่แปลก (เช่นใน "น่าสนใจ") ตัวอย่างเช่นนายก Sophie Germainเป็นนายกpที่2*p+1สำคัญเช่นกัน นายกปลอดภัยเป็นนายกpที่(p-1)/2ยังเป็นนายกรัฐมนตรีซึ่งเป็นว่าสภาพข้างหลังของนายกโซฟีต์แชร์กแมง สิ่งเหล่านี้เกี่ยวข้องกับสิ่งที่เรากำลังมองหาในการท้าทายนี้ ห่วงโซ่คันนิงแฮมของประเภทที่เป็นชุดของจำนวนเฉพาะที่องค์ประกอบยกเว้นคนสุดท้ายทุกคนจะเป็นนายกโซฟีต์แชร์กแมงและองค์ประกอบยกเว้นคนแรกที่ทุกคนเป็นนายกปลอดภัย จำนวนขององค์ประกอบในครั้งนี้มีห่วงโซ่ที่เรียกว่ามันยาว ซึ่งหมายความว่าเราเริ่มต้นด้วยการลากและคำนวณp q=2*p+1ถ้าqเป็นไพร์มด้วยเรามี Cunnigham chain ของ type I ที่มีความยาว 2 จากนั้นเราจะทดสอบ2*q+1และต่อไปเรื่อย ๆ จนกระทั่งจำนวนที่สร้างขึ้นถัดไปเป็นคอมโพสิต โซ่คันนิงแฮมประเภทIIสร้างขึ้นตามหลักการเดียวกันเกือบทั้งหมดความแตกต่างเพียงอย่างเดียวคือเราตรวจสอบ2*p-1แต่ละขั้นตอน โซ่คันนิงแฮมสามารถมีความยาว 1ซึ่งหมายความว่า 2 * p + 1 หรือ 2 * p-1 ไม่สำคัญ เราไม่ได้สนใจในสิ่งเหล่านี้ ตัวอย่างบางส่วนของ Cunningham chains 2เริ่มสายโซ่ประเภทที่ฉันมีความยาว …

3
การนับจำนวนป่าที่ถูก จำกัด บนบันไดMöbiusที่มีความยาว n
OEIS ลำดับA020872นับจำนวนของป่าไม้ จำกัด ในการMöbiusบันได M n ความท้าทาย ความท้าทายคือการเขียนโปรแกรมที่ใช้เวลาเป็นจำนวนเต็มใส่n > 1และผลตอบแทนA020872(n)จำนวน จำกัด ป่าบนMöbiusบันไดเอ็มn นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดจึงชนะ (แรงจูงใจที่ซ่อนเร้นคือการขยายความยาวของลำดับนี้โดยเล็กน้อย) คำนิยาม ป่าที่ถูก จำกัดเป็นพาร์ทิชันของกราฟดังกล่าวว่าแต่ละส่วนเป็นทั้ง (ไม่มีทิศทาง) เส้นทางหรือจุดสุดยอดบางแห่ง Möbiusบันได M nเป็นกราฟซึ่งสามารถจะคิดว่าเป็น 2n-gon กับเส้นทแยงมุมวาดระหว่างจุดตรงข้ามทั้งหมด ตัวอย่าง นี่คือป่าที่ถูก จำกัด 34 แห่งใน M 2 (สี่เหลี่ยมจัตุรัสที่มีเส้นทแยงมุมวาด) โปรดสังเกตว่ากราฟแรกถูกแบ่งเป็นจุดยอดแยกสี่จุดส่วนที่สองถูกแบ่งเป็นหนึ่งเส้นทางและสองจุดยอดแยกเป็นต้น

12
เบอร์แรมซีย์หมายเลขเล็ก
ความเป็นมา: หมายเลขแรมซีย์R(r,s)R(r,s)R(r,s)ให้จำนวนจุดยอดต่ำสุดvvvในกราฟสมบูรณ์KvKvK_vซึ่งการระบายสีขอบสีแดง / น้ำเงินของKvKvK_vมีอย่างน้อยหนึ่งสีแดงKrKrK_rหรือสีน้ำเงินหนึ่งKsKsK_sอัน ขอบเขตขนาดใหญ่สำหรับr,sr,sr, sเป็นเรื่องยากมากที่จะสร้าง งานของคุณคือการส่งออกจำนวนR(r,s)R(r,s)R(r,s)สำหรับ1≤r,s≤51≤r,s≤51 \le r,s \le 5 5 อินพุต สองจำนวนเต็มr,sr,sr, sกับ1≤r≤51≤r≤51 \le r \le 5และ1≤s≤51≤s≤51 \le s \le 5 5 เอาท์พุต R(r,s)R(r,s)R(r,s)ตามที่กำหนดในตารางนี้: s 1 2 3 4 5 r +-------------------------- 1 | 1 1 1 1 1 2 | 1 2 3 4 5 3 | …

30
กู้กำลังสำคัญจากพลังพิเศษ
คำจำกัดความ : พลังพิเศษเป็นจำนวนธรรมชาติที่สามารถแสดงในรูปแบบ p nโดยที่ p คือจำนวนเฉพาะและ n เป็นจำนวนธรรมชาติ ภารกิจ : เมื่อได้รับพลังพิเศษ p n > 1 ให้คืนค่านายกรัฐมนตรี ทดสอบ : input output 9 3 16 2 343 7 2687 2687 59049 3 เกณฑ์การให้คะแนน : นี่คือรหัสกอล์ฟ คำตอบที่สั้นที่สุดในการชนะไบต์
13 code-golf  arithmetic  primes  king-of-the-hill  python  board-game  code-golf  number  subsequence  code-golf  ascii-art  code-golf  array-manipulation  decision-problem  grid  fastest-algorithm  logic-gates  logic  code-golf  cards  code-golf  rational-numbers  code-golf  math  number  sequence  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  code-golf  number  sequence  decision-problem  code-golf  ascii-art  number  code-challenge  sequence  arithmetic  sorting  code-golf  date  fastest-algorithm  code-golf  string  number  random  combinatorics  code-golf  combinatorics  code-golf  ascii-art  base-conversion  code-golf  array-manipulation  code-golf  string  code-golf  string  number  arithmetic  code-golf  kolmogorov-complexity  code-golf  string  array-manipulation  json  code-golf  puzzle-solver  code-golf  binary  graph-theory  code-golf  arithmetic  haskell  code-golf  string  cipher  code-golf  code-golf  string  parsing  alphabet  code-golf  string  code-golf  ascii-art  code-golf  string  number  code-golf  string  balanced-string 

7
จุดตัดในเขาวงกต
เขาวงกตจะได้รับเป็นเมทริกซ์ 0s (ผนัง) และ 1s (พื้นที่เดิน) ในรูปแบบที่สะดวกใด ๆ แต่ละเซลล์จะถูกพิจารณาว่าเชื่อมต่อกับเพื่อนบ้านของ orthogonal 4 ตัว (หรือน้อยกว่า) คอมโพเนนท์ที่ต่อเป็นชุดของเซลล์ walkable ทั้งหมดที่เชื่อมต่อสกรรมกริยากับแต่ละอื่น ๆ งานของคุณคือการระบุcutpoints - เซลล์ walkable ซึ่งหากกลายเป็นผนังจะเปลี่ยนจำนวนขององค์ประกอบที่เกี่ยวโยงกัน เอาท์พุทเมทริกซ์บูลีนแบบ 1 วินาทีที่ตำแหน่งเหล่านั้นเท่านั้น เป้าหมายคือการทำในรหัสไบต์น้อยที่สุด เมทริกซ์การป้อนข้อมูลจะประกอบด้วยอย่างน้อย 3 แถวและ 3 คอลัมน์ เซลล์อย่างน้อยหนึ่งเซลล์จะเป็นกำแพงและอย่างน้อยหนึ่งเซลล์ก็สามารถเดินได้ ฟังก์ชั่นหรือโปรแกรมของคุณจะต้องสามารถประมวลผลตัวอย่างใด ๆ ด้านล่างในเวลาไม่เกินหนึ่งนาทีในTIO (หรือในคอมพิวเตอร์ของคุณเองหาก TIO ไม่รองรับภาษา) in: 11101001 11011101 00000001 11101111 11110101 00011111 10110001 11111111 out: 01000000 00001001 …

3
การกวาดทุ่นระเบิด Hexcellent
Hexcells เป็นเกมที่ใช้Minesweeperเล่นกับรูปหกเหลี่ยม (การเปิดเผยอย่างเต็มรูปแบบ: ฉันไม่มีส่วนเกี่ยวข้องกับ Hexcells จริงๆแล้วฉันไม่ชอบเกม) กฎของ Hexcells ส่วนใหญ่สามารถแสดงได้อย่างง่ายดายใน Generalines Minesweeper (Minesweeper เล่นบนกราฟโดยพลการ) สิ่งที่ยากที่สุดคือกฎ{X}และ-X- {X}กฎบอกเราว่ามือถือที่มีพรมแดนติดกับXเหมืองแร่และว่าทั้งหมดของการทำเหมืองแร่เหล่านี้ชายแดนแต่ละอื่น ๆ ในเส้นทางต่อเนื่อง ตัวอย่างเช่นถ้าเรามีกระดาน: ? ? ? {3} ? ? ? ความเป็นไปได้ 6 ประการสำหรับการวางตำแหน่งเหมืองคือ * . . . . . . * * * * * * {3} . * {3} . . {3} * . …

4
มันคือสองฝ่าย?
ฝ่ายกราฟเป็นกราฟที่มีจุดสามารถแบ่งออกเป็นสองชุดเคลื่อนเช่นว่าขอบไม่เชื่อมต่อสองจุดอยู่ในชุดเดียวกัน กราฟเป็นสองฝ่ายถ้าหากมันเป็น 2 สี ท้าทาย งานของคุณคือการให้กราฟadjacencyของกราฟง่าย ๆ ไม่ได้บอกทิศทางว่าเป็นกราฟสองฝ่ายหรือไม่ นั่นคือถ้าขอบเชื่อมต่อจุดยอด i และ j ทั้งสองรายการ (i, j) และ (j, i) ของเมทริกซ์คือ 1 เนื่องจากกราฟนั้นไม่ได้บอกทิศทางและเรียบง่ายเมทริกซ์ adjacency จึงมีความสมมาตรและมีเพียง 0 และ 1 ข้อมูลจำเพาะ คุณควรใช้เมทริกซ์ N-by-N เป็นอินพุต (ในรูปแบบใด ๆ เช่นรายการของรายการ, รายการสตริง, C-like int**และขนาด, อาร์เรย์ที่แบน, อินพุตดิบ ฯลฯ ) ฟังก์ชั่น / โปรแกรมควรกลับ / ส่งออกค่าความจริงถ้ากราฟเป็นสองฝ่ายและเป็นเท็จอย่างอื่น กรณีทดสอบ ['00101', '00010', '10001', '01000', …

7
ค้นหาชุดของการจับคู่ขอบสูงสุด
พิจารณากราฟที่ไม่ได้ทำการเชื่อมต่อ ชุดการจับคู่ของขอบบนกราฟนี้ถูกกำหนดให้เป็นชุดของขอบเช่นว่าไม่มีสองขอบในส่วนแบ่งชุดจุดสุดยอดที่พบบ่อย ตัวอย่างเช่นรูปด้านซ้ายแสดงชุดการจับคู่เป็นสีเขียวในขณะที่รูปขวาแสดงถึงชุดการจับคู่ที่ไม่ใช่สีแดง มีการกล่าวถึงชุดการจับคู่maximally matchingหรือmaximal matchingถ้าไม่สามารถเพิ่มขอบของกราฟลงในชุดการจับคู่ได้ ดังนั้นทั้งสองตัวอย่างข้างต้นไม่ใช่ชุดการจับคู่สูงสุด แต่ชุดทั้งสองด้านล่างเป็นสีน้ำเงินเป็นการจับคู่สูงสุด โปรดทราบว่าการจับคู่สูงสุดไม่จำเป็นต้องซ้ำกัน นอกจากนี้ยังไม่มีข้อกำหนดว่าขนาดของการจับคู่สูงสุดที่เป็นไปได้สำหรับกราฟนั้นเท่ากับการจับคู่อื่น เป้าหมายของความท้าทายนี้คือการเขียนโปรแกรม / ฟังก์ชั่นเพื่อค้นหาการจับคู่สูงสุดของกราฟ อินพุต สมมติว่าจุดยอดทั้งหมดของกราฟป้อนข้อมูลมีจำนวนเต็มต่อเนื่องเริ่มต้นที่ค่าจำนวนเต็มเริ่มต้นที่คุณเลือก ขอบถูกอธิบายโดยคู่เลขจำนวนเต็มที่ไม่เรียงลำดับซึ่งหมายถึงจุดยอดที่ขอบเชื่อมต่อ ตัวอย่างเช่นกราฟที่แสดงด้านบนสามารถอธิบายได้ด้วยชุดของขอบที่ไม่เรียงลำดับดังต่อไปนี้ (สมมติว่าจำนวนของจุดยอดเริ่มต้นที่ 0): [(0,1), (0,2), (1,3), (1,4), (2,3), (3,4), (3,5), (5,6)] อีกทางเลือกหนึ่งในการอธิบายกราฟคือผ่านรายการ adjacency นี่คือตัวอย่างของรายการ adjacency สำหรับกราฟด้านบน: [0:(1,2), 1:(0,3,4), 2:(0,3), 3:(1,2,4,5), 4:(1,3), 5:(3,6), 6:(5)] โปรแกรม / ฟังก์ชั่นของคุณจะต้องใช้กราฟอินพุตจากแหล่งใด ๆ (stdio, พารามิเตอร์ฟังก์ชั่น ฯลฯ ) คุณสามารถใช้สัญลักษณ์ใดก็ได้ที่ต้องการตราบใดที่ไม่มีการสื่อสารข้อมูลที่ไม่สำคัญเพิ่มเติมกับโปรแกรมของคุณ ตัวอย่างเช่นการมีพารามิเตอร์พิเศษเพื่อแสดงว่าจำนวนของขอบอินพุตนั้นเป็นที่ยอมรับได้อย่างสมบูรณ์ ในทำนองเดียวกันการส่งผ่านหลายเซ็ตของขอบรายการคำนำหรือเมทริกซ์ …

4
กราฟพื้นที่เชิงลบ
งาน คุณจะได้รับจำนวนเต็มบวกและคุณต้องส่งออก " กราฟเสริมตนเอง " กับหลาย ๆ โหนด หากคุณไม่รู้ว่ากราฟเสริมด้วยตนเองคืออะไรบทความวิกิพีเดียไม่ช่วยคุณได้มากนักด้านล่างนี้เป็นคำอธิบายสองคำหนึ่งคือคำอธิบายทางเทคนิคและไม่ใช่ทางเทคนิค ไม่ใช่ทางด้านเทคนิค กราฟคือชุดของโหนดที่เชื่อมต่อกันด้วยเส้น คะแนนแต่ละคู่สามารถเชื่อมต่อกันด้วยหนึ่งบรรทัด "ส่วนประกอบ" ของกราฟเป็นผลมาจากการทำกราฟและเชื่อมต่อโหนดทั้งหมดที่ไม่ได้เชื่อมต่อและตัดการเชื่อมต่อโหนดทั้งหมดที่อยู่ กราฟเสริมตนเองคือกราฟที่สามารถจัดเรียงส่วนเติมเต็มให้เป็นรูปร่างของต้นฉบับได้ ด้านล่างนี้เป็นตัวอย่างของกราฟเสริมตนเองและการสาธิตวิธีการ นี่คือกราฟที่มี 5 โหนด: เราจะเน้นสถานที่ทั้งหมดที่การเชื่อมต่อสามารถไปด้วยเส้นประสีแดง: ตอนนี้เราจะได้พบกับส่วนเสริมของกราฟโดยการสลับขอบสีแดงและสีดำ: สิ่งนี้ดูไม่เหมือนกราฟต้นฉบับ แต่ถ้าเราย้ายโหนดรอบ ๆ เช่นนั้น (แต่ละขั้นตอนจะสลับสองโหนด): เราได้กราฟมาแล้ว! กราฟและส่วนประกอบเป็นกราฟเดียวกัน วิชาการ กราฟเสริมตนเองคือกราฟที่มีลักษณะสัมพัทธ์กับส่วนประกอบ ข้อมูลจำเพาะ คุณจะได้รับจำนวนเต็มบวกผ่านวิธีใดก็ตามที่เหมาะกับคุณที่สุด และคุณจะส่งออกกราฟในวิธีใดก็ตามที่คุณเห็นว่าเหมาะสมซึ่งรวมถึง แต่ไม่ จำกัด เฉพาะแบบฟอร์ม Adjacency Matrix , แบบฟอร์มรายการ Adjacencyและรูปภาพแน่นอน! กราฟเอาท์พุทจะต้องเป็นส่วนประกอบของตัวเองและมีโหนดเป็นจำนวนเต็มเป็นจำนวนเต็ม หากไม่มีกราฟดังกล่าวอยู่คุณจะต้องส่งออกค่าเท็จ นี่คือโค้ดกอล์ฟและคุณควรตั้งเป้าเพื่อลดจำนวนไบต์ของคุณ กรณีทดสอบ ด้านล่างเป็นรูปภาพของเอาต์พุตที่เป็นไปได้สำหรับหลาย n 4 5 9

4
รับ The Getters
งาน ฉันเดาว่าทุกคนชอบการสร้างรหัสอัตโนมัติและประหยัดเวลาในการทำงาน คุณต้องสร้างชั้นเรียนและสมาชิกจำนวนมากในระหว่างวันและคุณไม่ต้องการสร้างสิ่งเหล่านั้นgettersด้วยตนเอง ภารกิจคือการเขียนโปรแกรมหรือฟังก์ชั่นที่สร้างขึ้นgettersสำหรับสมาชิกทุกคนในชั้นเรียนให้คุณโดยอัตโนมัติ การป้อนข้อมูล ในวัตถุภาษาของเรานั้นง่ายมาก ชื่อของชั้นเรียนและสมาชิกจะต้องเริ่มต้นด้วย chararacter จากและสามารถมีตัวอักษร[a-zA-Z] [a-zA-Z0-9]นี่คือตัวอย่าง: class Stack { public overflow; protected trace; private errorReport; } ผลลัพธ์ นี่เป็นเอาต์พุตที่ถูกต้องตามตัวอย่างที่กำหนด: class Stack { public overflow; protected trace; private errorReport; public function getOverflow() { return this->overflow; } public function getTrace() { return this->trace; } public function getErrorReport() { return …
13 code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 

1
บันทึกห่านจากการสูญพันธุ์
ห่านสายพันธุ์ที่รู้จักกันในชื่อAlex Aเป็นที่รู้จักกันว่าอาศัยอยู่ในกริดรูปสามเหลี่ยมซึ่งประกอบด้วย 64 เซลล์: (รูปภาพที่นำมาจากปัญหาเกี่ยวกับ Project Euler ที่ไม่เกี่ยวข้อง ) เราจะติดป้ายเซลล์ที่มีตัวเลขในแต่ละ0ที่จะ63เริ่มต้นจากแถวด้านบนแล้วย้ายจากซ้ายไปขวาในแต่ละแถวด้านล่างที่ ดังนั้นเซลล์ด้านบนเป็นเซลล์ล่างขวาเป็น063 แต่ละเซลล์มีสามเส้นขอบ เราสามารถติดป้ายแต่ละเส้นขอบในรูปแบบa,bที่aและbเป็นหมายเลขของเซลล์ที่ใช้เส้นขอบนั้น ตัวอย่างเช่นเส้นขอบระหว่างเซลล์0และ2จะถูกเรียก0,2หรือ2,0(ไม่สำคัญว่าคุณจะเรียงลำดับอะไร) ระบบการติดฉลากของเส้นขอบที่ขอบของกริดนั้นแตกต่างกันเนื่องจากเซลล์ที่อยู่บนขอบของกริดนั้นมีเส้นขอบที่ไม่ได้ใช้ร่วมกับเซลล์อื่น หากเส้นขอบเป็นเพียงส่วนหนึ่งของเซลล์เดียวเราจะใช้ตัวอักษรXนั้น ยกตัวอย่างเช่นสามชายแดนของเซลล์0มี0,2, และ0,X0,X บางส่วนของเซลล์ประกอบด้วยห่าน อย่างไรก็ตามห่านเหล่านี้จะถูกสุนัขจิ้งจอกชั่วร้ายฆ่าตาย (ซึ่งมาจากนอกเขตของกริด) ถ้าคุณไม่ปกป้องพวกมัน และถ้าห่านทุกตัวตายไปแล้ว BrainSteel จะเศร้า ดังนั้นเราจะเขียนโปรแกรมที่สร้างรั้วรอบ ๆ ห่านเพื่อปกป้องพวกมันจากสุนัขจิ้งจอก ห่านควรอยู่ในที่เดียวรูปหลายเหลี่ยมล้อมรอบอย่างเต็มที่รั้ว งบประมาณรั้วของเราค่อนข้างต่ำดังนั้นใช้จำนวนรั้วน้อยที่สุดเท่าที่จะทำได้ ป้อนคำอธิบาย รายการตัวเลขคั่นด้วยเครื่องหมายจุลภาคจาก0ถึง63แทนเซลล์ที่มีห่าน ตัวอย่าง: 6,12 คำอธิบายผลลัพธ์ รายการของเส้นขอบที่จำเป็นต้องมีรั้วสร้างขึ้นเพื่อป้องกันห่านที่ประสบความสำเร็จ นี่ควรเป็นจำนวนรั้วที่เล็กที่สุดเท่าที่จะทำได้ ตัวอย่าง: 5,6 6,7 11,12 12,13

3
ทฤษฎีบทสี่สี
ทฤษฎีบทสีสี่สหรัฐอเมริกาว่าไม่เกินสี่สีจะต้องสีภูมิภาคของแผนที่ ความท้าทาย เมื่อกำหนดรายการเส้นขอบรัฐให้กำหนดสี ID แต่ละรัฐเพื่อให้ไม่มีสถานะติดกันสองสถานะที่มีสีเดียวกัน ผลลัพธ์ควรเป็นสไตล์ชีท CSS ที่กำหนดสีให้กับรหัสตัวอักษร 2 ตัวของรัฐ นี่คือแผนที่ SVG ที่สไตล์ชีทสามารถนำไปใช้ได้ http://upload.wikimedia.org/wikipedia/commons/3/32/Blank_US_Map.svg กฎระเบียบ รหัสที่สั้นที่สุดชนะ สามารถใช้รายการเส้นขอบสถานะใด ๆ สามารถใช้งานได้ 4 สีเท่านั้น รายการสถานะสามารถ hardcoded คำแนะนำ: ใช้fill:คุณสมบัติCSS เพื่อเปลี่ยนสีตัวอย่างเช่น#AL{fill:green} นี่คือรายการของรัฐชายแดน AL-FL AL-GA AL-MS AL-TN AR-LA AR-MO AR-MS AR-OK AR-TN AR-TX AZ-CA AZ-CO AZ-NM AZ-NV AZ-UT CA-NV CA-OR CO-KS CO-NE CO-NM CO-OK CO-UT CO-WY …

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