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

    ในปัญหานี้ เราได้รับ n จุดที่อยู่บนระนาบ 2 มิติ โดยแต่ละจุดมีพิกัด (x, y) ภารกิจของเราคือการแก้ปัญหาการสืบค้น (queries) สำหรับแต่ละ query เราจะได้รับจำนวนเต็ม R เราต้องหาจำนวนจุดที่อยู่ภายในวงกลม โดยมีศูนย์กลางอยู่ที่จุดกำเนิด (0, 0) และมีรัศมี R คำอธิบายปัญหา สำหรับแต่ละ query เราต้องหาจำนวนจุดทั้

  2. Query จำนวน Binary Sub-matrices ขนาดกำหนดใน C++

    ในปัญหานี้ กำหนดให้มี Binary Matrix bin[][] ขนาด n×m ภารกิจคือตอบคำถาม (Query) ทั้งหมด q คำถาม สำหรับ Query(x, y) ต้องหาจำนวน Sub-matrix ขนาด x×x ที่ทุกอิลิเมนต์มีค่าเป็น y (0 หรือ 1) คำอธิบายปัญหา นับจำนวน Sub-matrix ขนาดที่กำหนด ที่ประกอบด้วยบิตเดียวกันทั้งหมด (ทั้ง 0 หรือทั้ง 1) ตัวอย่าง Input

  3. อัลกอริทึม Aho-Corasick สำหรับ Pattern Searching ใน C++

    ในปัญหานี้ กำหนดให้มีสตริงนำเข้า (input string) และอาร์เรย์ arr[] ภารกิจคือหาตำแหน่งของคำทุกคำในอาร์เรย์ที่ปรากฏในสตริง โดยใช้ Aho-Corasick Algorithm for Pattern Searching การค้นหาสตริงและรูปแบบ (pattern searching) สำคัญในการเขียนโปรแกรม อัลกอริทึม Aho-Corasick เป็น อัลกอริทึมที่ทรงพลังมาก ทำให้กา

  4. อัลกอริทึม Alexander Bogomolny สำหรับ Unordered Permutation ใน C++

    กำหนดให้มีจำนวน N ภารกิจคือหา Unordered Permutation ของ N โดยใช้ Alexander Bogomolnys UnOrdered Permutation Algorithm Permutation คืออะไร? Permutation (การเรียงสับเปลี่ยน) คือจำนวนวิธีที่รายการในเซตสามารถเรียงลำดับได้อย่างไม่ซ้ำกัน ตัวอย่าง: Permutation ของ {4,9,2} คือ {4,9,2}, {4,2,9}, {9,4,2}, {

  5. การประมาณค่าด้วย Bessel's Interpolation ใน C++

    Interpolation (การประมาณค่าระหว่างจุด) เป็นเทคนิคประมาณค่าที่ไม่ทราบซึ่งอยู่ระหว่างค่าที่รู้จัก กระบวนการสร้างจุดข้อมูลใหม่ระหว่างช่วงของชุดข้อมูลที่รู้จักและเป็น дискрет เหตุผลในการใช้ Interpolation: อาจลดต้นทุนการคำนวณ เมื่อสูตร (ฟังก์ชัน) สำหรับคำนวณค่าบางอย่างซับซ้อนหรือค่าใช้จ่ายสูง เราจะคำนว

  6. ผลรวมค่าตัวอักษรตามลำดับอักษรในสตริง C++

    ในปัญหานี้ กำหนดให้มีอาร์เรย์สตริง str[] ภารกิจคือหาคะแนน (score) ของทุกสตริงในอาร์เรย์ คะแนนนิยามว่าเป็น ผลคูณของตำแหน่งสตริงกับผลรวมค่าตัวอักษรตามลำดับอักษร ตัวอย่าง Input: str[] = {Learn, programming, tutorials, point} คำนวณ: Learn (ตำแหน่ง 1): L(12)+e(5)+a(1)+r(18)+n(14) = 50 → Score = 50 ×

  7. ผลรวมของโหนดสลับกันใน Linked List ด้วย C++

    ในปัญหานี้ กำหนดให้มี Linked List ภารกิจคือหาผลรวมของโหนดสลับกัน (alternate nodes) ของ Linked List Linked List เป็นโครงสร้างข้อมูลลำดับที่เชื่อมต่อกันผ่านลิงก์ เราจะบวกโหนดที่ตำแหน่ง 0, 2, 4, 6, ... ตัวอย่าง Input: 4 → 12 → 10 → 76 → 9 → 26 → 1 Output: 24 คำอธิบาย: โหนดสลับกัน = 4 + 10 + 9 + 1 =

  8. โปรแกรมหาผลรวมหลักฐานของตัวเลข N ในฐาน 2 ถึง N/2 ด้วย C++

    ภาพรวมปัญหา โปรแกรมนี้คำนวณผลรวมของ หลักเลข (Digits) เมื่อเขียนตัวเลข N ในฐาน (Base) ต่างๆ จากฐาน 2 ถึงฐาน N/2 ตัวอย่าง N = 11 Bases: 2, 3, 4, 5 (N/2 = 5) Base 2: 11 = 1011₂ → Sum = 1+0+1+1 = 3 Base 3: 11 = 102₃ → Sum = 1+0+2 = 3 Base 4: 11 = 23₄ → Sum = 2+3 = 5 Base 5: 11 = 21₅ → Sum = 2+1 = 3

  9. โปรแกรมหาผลรวมอาร์เรย์ arr[i] = i × (-1)^i ในช่วง L ถึง R C++

    ภาพรวมปัญหา กำหนดอาร์เรย์ที่ arr[i] = i × (-1)ⁱ (1-indexed) ต้องการหาผลรวมในช่วงดัชนี L ถึง R ลำดับ: -1, 2, -3, 4, -5, 6, -7, 8, ... Index คี่: ค่าลบ (-i) Index คู่: ค่าบวก (+i) ตัวอย่าง L=2, R=6 arr[2]=2, arr[3]=-3, arr[4]=4, arr[5]=-5, arr[6]=6 Sum = 2 + (-3) + 4 + (-5) + 6 = 4 วิธีที่ 1: Bru

  10. โปรแกรมหาผลรวมค่าต่ำสุดในแต่ละ Connected Component ของ Undirected Graph C++

    ภาพรวมปัญหา กำหนดกราฟ Undirected Graph ที่มี N โหนด (โหนด i มีค่า arr[i-1]) และ M Edge ให้หาผลรวมของค่าต่ำสุด (Minimum Value) ในแต่ละ Connected Component โหนดที่ไม่มี Edge เชื่อม (Isolated Node) ถือเป็น Component เดียว ตัวอย่าง arr = [2, 7, 5, 1, 3] // Node 1=2, Node 2=7, Node 3=5, Node 4=1, Node

  11. โปรแกรมหาผลรวมโหนดภาพสะท้อนใน Complete Binary Tree แบบ Inorder C++

    ภาพรวมปัญหา โปรแกรมนี้หาผลรวมของโหนดในซับทรีซ้ายกับโหนดภาพสะท้อน (Mirror Image) ในซับทรีขวาของ Complete Binary Tree โดยท่องแบบ Inorder นิยามสำคัญ Complete Binary Tree: ทุกระดับเต็มยกเว้นระดับสุดท้ายที่เต็มจากซ้ายไปขวา Mirror Image Nodes: โหนดที่อยู่ตำแหน่งสมมาตรกันผ่านแกนกลาง (Root) Inorder Traver

  12. โปรแกรมหาผลรวมตัวคูณของสองจำนวนภายใต้ N ใน C++

    ภาพรวมปัญหา โปรแกรมนี้หาผลรวมของตัวเลขที่น้อยกว่า N และเป็นตัวคูณของ M1 หรือ M2 (หรือทั้งคู่) เงื่อนไข: i < N และ (i % M1 == 0 หรือ i % M2 == 0) ตัวอย่าง N = 13, M1 = 4, M2 = 6 Multiples of 4: 4, 8, 12 Multiples of 6: 6, 12 Union: 4, 6, 8, 12 Sum = 4 + 6 + 8 + 12 = 30 วิธีแก้ปัญหา วิธีที่ 1: Bru

  13. โปรแกรมหาผลรวมเลขธรรมชาติที่หาร K เหลือ R ใน C++

    ภาพรวมปัญหา โปรแกรมนี้หาผลรวมของจำนวนธรรมชาติ (Natural Numbers) ที่ ≤ N และให้เศษ R เมื่อหารด้วย K เงื่อนไข: i % K == R โดยที่ 1 ≤ i ≤ N วิธีแก้ปัญหา วิธีที่ 1: Brute Force (ตรวจสอบทุกตัว) int sumBruteForce(int N, int K, int R) { int sum = 0; for (int i = 1; i <= N; i++) { if (i %

  14. โปรแกรมหาผลรวมโหนดใน Circular Linked List ด้วย C++

    ภาพรวมปัญหา โปรแกรมนี้คำนวณผลรวมของค่าข้อมูล (data) ทุกโหนดใน Circular Linked List ซึ่งเป็น Linked List ที่โหนดสุดท้ายชี้กลับไปหาโหนดแรก (Head) โครงสร้างโหนด struct Node { int data; Node* next; }; ลักษณะ Circular Linked List next = Head) ต้องมีเงื่อนไขหยุดการวนลูป (Stop when back to Head)

  15. Circular Queue Data Structure ใน C++

    ภาพรวม Circular Queue Circular Queue (คิววงกลม) เป็นการปรับปรุงจาก Linear Queue ที่ใช้ Array โดยการเชื่อมปลายท้ายกับหัวเข้าด้วยกัน แก้ปัญหา False Overflow ที่พื้นที่ว่างอยู่แต่แทรกไม่ได้ เพราะ Front/Rear อยู่ปลาย Array แนวคิดหลัก Array ขนาดคงที่ (Fixed Size) Front - จุด Dequeue (นำออก) Rear - จุด

  16. Dequeue และ Priority Queue ใน C++ STL

    ภาพรวม Queue Variants Queue แบบปกติเป็น FIFO (First In First Out) แต่มี 2 แบบเวเรียนที่สำคัญ: Deque (Double-Ended Queue) - เพิ่ม/ลดได้ทั้ง 2 ข้าง Priority Queue - จัดเรียงตาม Priority (ไม่ใช่ลำดับเข้ามา) Part 1: Deque (Double-Ended Queue) #include <deque> คุณสมบัติ Random Access: operator

  17. Sorted Arrays ใน C++ การแทรกและลบข้อมูล

    ภาพรวม Sorted Array Sorted Array คืออาร์เรย์ที่ข้อมูลถูกจัดเรียงลำดับ (มักเป็นน้อยไปมาก) อยู่แล้ว ข้อได้เปรียบคือการค้นหาเร็ว (Binary Search O(log n)) แต่การแทรก/ลบช้ากว่า Unsorted Array (O(n)) เพราะต้องเลื่อนข้อมูล การแทรกข้อมูลใน Sorted Array (Insert) ขั้นตอน: หาตำแหน่งที่ควรแทรก (ใช้ Binary Sea

  18. Multidimensional Arrays ในภาษา C

    ภาพรวม Multidimensional Arrays Multidimensional Array (อาร์เรย์หลายมิติ) คืออาร์เรย์ที่มีมิติมากกว่าหนึ่งมิติ มิติที่พบบ่อยที่สุดคือ 2 มิติ (2D Array) ที่จัดเก็บข้อมูลในรูปแบบตาราง แถว (Rows) และ คอลัมน์ (Columns) การประกาศและเริ่มต้นค่า Syntax data_type array_name[size1][size2]...[sizeN]; ตัวอย่า

  19. Doubly Linked Circular List ใน C++

    ภาพรวม Doubly Linked Circular List Doubly Linked Circular List เป็นโครงสร้างข้อมูลที่รวมคุณสมบัติของ: Doubly Linked List - โหนดมี Pointer ไปทั้ง Next และ Previous Circular List - โหนดสุดท้ายชี้กลับมาหาโหนดแรก และโหนดแรกชี้ย้อนกลับไปหาโหนดสุดท้าย โครงสร้างโหนด struct Node { int data; int k

  20. Inorder Traversal ของ Threaded Binary Tree ใน C++

    ภาพรวม Threaded Binary Tree Threaded Binary Tree เป็น Binary Tree ที่นำ Pointer ว่าง (NULL) ของโหนดที่ไม่มีลูกซ้ายหรือขวา ไปชี้ไปยัง Inorder Predecessor หรือ Inorder Successor แทน เพื่อให้สามารถท่อง Inorder ได้โดยไม่ต้องใช้ Stack หรือ Recursion ประเภทของ Threaded Binary Tree ประเภทคำอธิบาย Single

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:204/301  20-คอมพิวเตอร์/Page Goto:1 198 199 200 201 202 203 204 205 206 207 208 209 210