Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. จำนวนสมาชิกน้อยที่สุดที่ควรลบเพื่อทำให้อาร์เรย์ดี (Good) ด้วย C++

    ข้อความโจทย์ กำหนดอาร์เรย์ arr งานคือหาจำนวนสมาชิกน้อยที่สุดที่ต้องลบเพื่อทำให้อาร์เรย์เป็นอาร์เรย์ที่ดี (Good Array) ลำดับ a1, a2, a3 ... an เรียกว่าดี (Good) หากสำหรับแต่ละสมาชิก a[i] มีสมาชิก a[j] (i ไม่เท่ากับ j) อยู่ที่ทำให้ a[i] + a[j] เป็นกำลังของสอง (Power of Two) arr1[] = {1, 1, 7, 1, 5}

  2. จำนวนสมาชิกน้อยที่สุดที่ต้องเพิ่มเพื่อทำให้มัธยฐานเท่ากับ x ด้วย C++

    ข้อความโจทย์ กำหนดอาร์เรย์ arr ขนาด n และสมาชิก x งานคือหาจำนวนสมาชิกน้อยที่สุดที่ต้องเพิ่มในอาร์เรย์เพื่อทำให้มัธยฐาน (Median) เท่ากับ x มัธยฐานในอาร์เรย์ที่มีความยาว n คือสมาชิกที่ครอบครองตำแหน่งหมายเลข (n-1)/2 หลังจากเราจัดเรียงสมาชิกในลำดับไม่ลดลง (Non-decreasing) ตัวอย่างเช่น ในอาร์เรย์ด้านล่า

  3. จำนวนสมาชิกน้อยที่สุดที่ต้องลบเพื่อให้ XOR สูงสุดด้วย C++

    ข้อความโจทย์ กำหนดจำนวน N งานคือหาจำนวนสมาชิกน้อยที่สุดที่ต้องลบระหว่าง 1 ถึง N เพื่อให้ XOR ที่ได้จากสมาชิกที่เหลือเป็นค่าสูงสุด อัลกอริทึม 1. ถ้า n เป็น 1 หรือ 2 ไม่ต้องลบสมาชิกใดๆ คำตอบคือศูนย์ 2. หาจำนวนที่เป็นกำลังของ 2 และมากกว่าหรือเท่ากับ เรียกจำนวนนี้ว่า nextNumber 2.1. ถ้า n == nextNum

  4. จำนวนการเคลื่อนที่น้อยที่สุดเพื่อทำให้ N หาร 25 ลงตัวด้วย C++

    ข้อความโจทย์ กำหนดจำนวน N โดยไม่มีศูนย์นำหน้า (Leading Zeros) งานคือหาจำนวนการเคลื่อนที่ขั้นต่ำที่จำเป็นเพื่อทำให้ N หาร 25 ลงตัว ในแต่ละการเคลื่อนที่ สามารถสลับเลขสองตัวที่อยู่ติดกันได้ และต้องแน่ใจว่าในทุกเวลา ตัวเลขต้องไม่มีศูนย์นำหน้า ถ้าไม่สามารถทำให้ N หาร 25 ลงตัวได้ ให้พิมพ์ -1 ถ้า N = 5071

  5. จำนวนการดำเนินการน้อยที่สุดเพื่อทำให้สตริงสองตัวเท่ากันด้วย C++

    ข้อความโจทย์ กำหนดสตริงสองตัว str1 และ str2 ทั้งสองตัวมีตัวอักษร a และ b ทั้งสองสตริงมีความยาวเท่ากัน มี _ (ช่องว่าง) อยู่ในทั้งสองสตริง งานคือแปลงสตริงแรกเป็นสตริงที่สอง โดยทำจำนวนการดำเนินการน้อยที่สุดของดังต่อไปนี้ - ถ้า _ อยู่ตำแหน่ง i แล้ว _ สามารถสลับกับตัวอักษรตำแหน่ง i+1 หรือ i-1 ถ้าตัวอัก

  6. จำนวนรายการขั้นต่ำที่ต้องส่งมอบต่อเที่ยวด้วย C++

    ข้อความโจทย์ กำหนดอาร์เรย์ขนาด N แทนถัง (Buckets) แต่ละดัชนีของอาร์เรย์มีจำนวนรายการ กำหนด K เที่ยวเดินทาง ที่ภายในต้องส่งมอบรายการทั้งหมด สามารถนำรายการจากถังเดียวได้ต่อเที่ยว งานคือบอกจำนวนรายการขั้นต่ำที่ต้องส่งมอบต่อเที่ยว เพื่อให้รายการทั้งหมดสามารถส่งมอบได้ภายใน K เที่ยว ถ้ามี 5 ถัง ที่มีรายก

  7. จำนวนตัวอักษรน้อยที่สุดเพื่อให้ผลรวมเท่ากับ n ด้วย C++

    ข้อความโจทย์ กำหนดจำนวนเต็ม n และให้ a = 1, b = 2, c = 3, ..., z = 26 งานคือหาจำนวนตัวอักษรน้อยที่สุดที่จำเป็นเพื่อให้ผลรวมเท่ากับ n ถ้า n = 23 ผลลัพธ์คือ 1 ถ้า n = 72 ผลลัพธ์คือ 3 (26 + 26 + 20) อัลกอริทึม 1. ถ้า n หาร 26 ลงตัว คำตอบคือ (n/26) 2. ถ้า n หาร 26 ไม่ลงตัว คำตอบคือ (n/26) + 1 ตัวอย่า

  8. จำนวนอีเมลน้อยที่สุดเพื่อแจกคำถามทั้งหมดด้วย C++

    ข้อความโจทย์ กำหนด N คำถามในแบบทดสอบ และ K นักเรียนในชั้นเรียน จากชุด K นักเรียน N นักเรียนจดจำคำถามได้ถูกต้องเพียงหนึ่งข้อต่อคน อีเมลหนึ่งฉบับสามารถบรรจุคำถามได้สูงสุด X ข้อ หาจำนวนอีเมลขั้นต่ำที่จำเป็น เพื่อให้ทั้งชั้นเรียนได้รู้จักคำถามทั้งหมด ถ้า N = 3, K = 3, X = 1 แล้วต้องส่ง 6 อีเมล - นักเ

  9. จำนวนการเคลื่อนที่น้อยที่สุดเพื่อทำให้สมาชิกทั้งหมดเท่ากันด้วย C++

    ข้อความโจทย์ กำหนดอาร์เรย์ N สมาชิก และจำนวนเต็ม K สามารถทำการดำเนินการต่อไปนี้ได้จำนวนครั้งไม่จำกัดบนอาร์เรย์ที่กำหนด - นำสมาชิกลำดับที่ K ไปต่อท้ายอาร์เรย์ และลบสมาชิกตัวแรกของอาร์เรย์ งานคือหาจำนวนการเคลื่อนที่น้อยที่สุดที่จำเป็นเพื่อทำให้สมาชิกทั้งหมดของอาร์เรย์เท่ากัน พิมพ์ -1 หากไม่เป็นไปไ

  10. จำนวนโหนดน้อยที่สุดในต้นไม้ AVL ที่มีความสูงกำหนดด้วย C++

    ข้อความโจทย์ กำหนดความสูงของต้นไม้ AVL งานคือหาจำนวนโหนดน้อยที่สุดที่ต้นไม้นั้นสามารถมีได้ ถ้าความสูง = 0 ต้นไม้ AVL สามารถมี 1 โหนด ถ้าความสูง = 5 ต้นไม้ AVL สามารถมีโหนดขั้นต่ำ 20 โหนด อัลกอริทึม ในต้นไม้ AVL เราต้องรักษาคุณสมบัติสมดุลความสูง (Height Balance Property) คือ ความแตกต่างของความสูงระ

  11. จำนวนการดำเนินการน้อยที่สุดบนอาร์เรย์เพื่อทำให้สมาชิกทั้งหมดเป็น 0 ด้วย C++

    ข้อความโจทย์ กำหนดอาร์เรย์ขนาด N และแต่ละสมาชิกเป็น 1 หรือ 0 งานคือคำนวณจำนวนการดำเนินการขั้นต่ำที่ต้องทำเพื่อแปลงสมาชิกทั้งหมดเป็นศูนย์ สามารถทำการดำเนินการดังต่อไปนี้ - ถ้าสมาชิกเป็น 1 คุณสามารถเปลี่ยนค่าเป็น 0 ได้ แล้ว - ถ้าสมาชิกถัดไปติดกันเป็น 1 จะถูกแปลงเป็น 0 อัตโนมัติ ถ้าสมาชิกถัดไปติดกันเ

  12. จำนวนการดำเนินการน้อยที่สุดเพื่อลบสมาชิกทั้งหมดของอาร์เรย์ด้วย C++

    ข้อความโจทย์ กำหนดอาร์เรย์จำนวนเต็ม arr งานคือพิมพ์จำนวนการดำเนินการขั้นต่ำที่จำเป็นเพื่อลบสมาชิกทั้งหมดของอาร์เรย์ ขณะลบสมาชิกมีข้อจำกัดดังนี้ - สามารถเลือกสมาชิกใดก็ได้จากอาร์เรย์แบบสุ่ม และสมาชิกทุกตัวที่หารด้วยมันลงตัวจะถูกลบออกจากอาร์เรย์ ถ้า arr[] = {2, 4, 15, 10, 8, 5, 3} แล้วต้องการ 3 กา

  13. จำนวนการดำเนินการน้อยที่สุดเพื่อสร้างสตริงไบนารี S ด้วย C++

    ข้อความโจทย์ กำหนดสตริงไบนารี str ให้หาจำนวนการดำเนินการขั้นต่ำที่ต้องทำเพื่อสร้างตัวเลขที่แทนโดย str มีเพียงการดำเนินการต่อไปนี้เท่านั้น - บวก 2x ลบ 2x ถ้าสตริงไบนารีคือ 1000 เราต้องทำเพียง 1 การดำเนินการ คือ บวก 23 ถ้าสตริงไบนารีคือ 101 เราต้องทำ 2 การดำเนินการ คือ บวก 22 + 20 ตัวอย่างโค้ด #i

  14. จำนวนการพลิกหน้าหนังสือน้อยที่สุดเพื่อไปยังหน้าที่ต้องการด้วย C++

    ข้อความโจทย์ กำหนดหนังสือ N หน้า งานคือคำนวณจำนวนการพลิกหน้าขั้นต่ำเพื่อไปยังหน้าที่ต้องการ K เราสามารถเริ่มพลิกหน้าจากด้านหน้าของหนังสือ (คือ จากหน้า 1) หรือจากด้านหลัง (คือ หน้าที่ N) แต่ละหน้ามีสองด้าน คือ ด้านหน้าและด้านหลัง ยกเว้นหน้าแรกที่มีแต่ด้านหลัง และหน้าสุดท้ายที่อาจมีแต่ด้านหลัง ขึ้นอ

  15. จำนวนพาลินโดรมน้อยที่สุดที่ผลรวมเท่ากับ N ด้วย C++

    ข้อความโจทย์ กำหนดจำนวน N เราต้องหาจำนวนพาลินโดรม (Palindromes) น้อยที่สุดที่จำเป็นเพื่อแสดง N เป็นผลรวมของพวกมัน ถ้า N = 15 แล้วต้องการพาลินโดรม 2 ตัวคือ 8 และ 7 อัลกอริทึม 1. สร้างพาลินโดรมทั้งหมดจนถึง N แบบเรียงลำดับ 2. หาขนาดของเซตย่อยที่เล็กที่สุดที่ผลรวมเท่ากับ N ตัวอย่างโค้ด #include <i

  16. จำนวนแพลตฟอร์มขั้นต่ำที่จำเป็นสำหรับสถานีรถไฟด้วย C++

    ข้อความโจทย์ กำหนดเวลาการมาถึงและเวลาออกเดินทางของรถไฟทั้งหมดที่มาถึงสถานีรถไฟ งานคือการหาจำนวนแพลตฟอร์มขั้นต่ำที่จำเป็นสำหรับสถานีรถไฟ เพื่อที่จะไม่มีรถไฟใดต้องรอ เราได้รับสองอาร์เรย์ที่แสดงเวลาการมาถึงและเวลาออกเดินทางของรถไฟที่หยุด สำหรับข้อมูลนำเข้าด้านล่าง เราต้องการแพลตฟอร์มอย่างน้อย 3 แห่ง

  17. จำนวนจุดน้อยที่สุดที่ต้องลบเพื่อให้จุดที่เหลืออยู่ด้านเดียวของแกนด้วย C++

    ข้อความโจทย์ เราได้รับ N จุดในระนาบคาร์ทีเซียน (Cartesian Plane) งานของเราคือการหาจำนวนจุดน้อยที่สุดที่ควรลบ เพื่อให้จุดที่เหลืออยู่ทั้งหมดอยู่ด้านเดียวของแกนใดแกนหนึ่ง ถ้าข้อมูลนำเข้าเป็น {(10, 5), (-2, -5), (13, 8), (-14, 7)} แล้วถ้าเราลบ (-2, -5) จุดที่เหลือทั้งหมดจะอยู่เหนือแกน X ดังนั้นคำตอบค

  18. จำนวนกำลังน้อยที่สุดที่ผลรวมเท่ากับ n ด้วย C++

    ข้อความโจทย์ กำหนดจำนวนเต็มบวกสองจำนวน N และ X งานคือการแสดง N เป็นผลรวมของกำลังของ X (X0 + X1 + ... + Xn) โดยที่จำนวนกำลังของ X ควรน้อยที่สุด พิมพ์จำนวนกำลังของ N ที่น้อยที่สุดที่ใช้ทำให้ผลรวมเท่ากับ N ถ้า N = 15 และ X = 3 แล้วเราต้องการ 3 กำลังของ 3 ดังนี้ - 15 = (32 + 31 + 31) อัลกอริทึม ใช้สู

  19. หาการจัดหมู่ทั้งหมดที่ผลรวมเท่ากับจำนวนที่กำหนดด้วย C++

    สมมติว่าเรามีจำนวนบวก n เราต้องหาการจัดหมู่ (Combinations) ทั้งหมดของจำนวนบวกที่บวกกันแล้วได้จำนวนนั้น เราต้องการเฉพาะการจัดหมู่ ไม่ใช่การเรียงสับเปลี่ยน (Permutations) สำหรับค่า n = 4 จะมี [1, 1, 1, 1], [1, 1, 2], [2, 2], [1, 3], [4] เราจะแก้ปัญหานี้โดยใช้การทำซ้ำแบบเรียกตัวเอง (Recursion) เรามีอา

  20. โปรแกรมพิมพ์โหนดระหว่างสองระดับที่กำหนดของต้นไม้แบบทวิภาคด้วย C++

    ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมที่พิมพ์โหนดระหว่างสองหมายเลขระดับ (Level) ที่กำหนดของต้นไม้แบบทวิภาค ในที่นี้ เราจะได้รับระดับต่ำ (Low Level) และระดับสูง (High Level) สำหรับต้นไม้แบบทวิภาคเฉพาะเจาะจง และเราต้องพิมพ์สมาชิกทั้งหมดระหว่างระดับที่กำหนด วิธีการแก้ปัญหา เราสามารถใช้การท่องระดับแบบคิว

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:90/301  20-คอมพิวเตอร์/Page Goto:1 84 85 86 87 88 89 90 91 92 93 94 95 96