Phước Hưng Online Judge

Nền tảng luyện tập lập trình, thuật toán và thi đấu trực tuyến dành cho học sinh.

Rèn luyện tư duy giải thuật, theo dõi tiến độ và chuẩn bị cho các kỳ thi Tin học.

Problem Set · Training · Contest

Bắt đầu luyện tập

  • Problem Set — Kho bài tập được phân loại theo chủ đề và độ khó.
  • Training — Luyện tập theo lộ trình và chuyên đề.
  • Contest — Tham gia các kỳ thi và thử thách lập trình.
  • Ranking — Theo dõi thành tích và tiến bộ của bạn.

Luyện tập

  1. 1
    Đã tham gia

    Minimax và Tìm kiếm đối kháng (Adversarial Search)

    Lộ trình chuyên sâu về Minimax và Tìm kiếm đối kháng (Adversarial Search), bắt đầu từ mô hình hóa trò chơi, cây trạng thái, đệ quy, Minimax, Negamax và Alpha–Beta Pruning; sau đó mở rộng đến các kỹ thuật được sử dụng trong game engine hiện đại như Move Ordering, Iterative Deepening, Transposition Table, Zobrist Hashing, Quiescence Search, PVS, Aspiration Window, Null Move Pruning và LMR. Xuyên suốt lộ trình, học viên từng bước vận dụng kiến thức để xây dựng một Chess Engine hoàn chỉnh.

    • 2 phần, 4 bài tập
  2. 8
    Đã tham gia

    Các Bài Toán Nhập Môn

    Các Bài Toán Nhập Môn là bước khởi đầu trong hành trình học Competitive Programming, giúp xây dựng nền tảng tư duy thuật toán và kỹ năng lập trình cơ bản. Lộ trình tập trung vào việc phân tích đề bài, tìm quy luật, thiết kế thuật toán và triển khai lời giải hiệu quả thông qua các kỹ thuật như mô phỏng, toán học, tham lam, tìm kiếm toàn bộ, đệ quy, quay lui và xử lý bit.

    • 1 phần, 16 bài tập
  3. 1
    Đã tham gia

    Lộ trình Sàng số nguyên tố

    Lộ trình Sàng số nguyên tố giúp học viên nắm vững cách tìm và xử lý số nguyên tố hiệu quả trong lập trình thi đấu. Bắt đầu từ kiểm tra nguyên tố cơ bản, học viên sẽ lần lượt làm chủ Sàng Eratosthenes, sàng tối ưu, mảng ước nguyên tố nhỏ nhất, Sàng tuyến tính và các ứng dụng quan trọng trong phân tích thừa số, đếm số nguyên tố và xử lý truy vấn.

    • 1 phần, 3 bài tập
  4. 3
    Đã tham gia

    Lộ trình Đường đi ngắn nhất

    Lộ trình luyện tập toàn diện các bài toán đường đi ngắn nhất trong Competitive Programming, từ BFS, 0-1 BFS đến Dijkstra, Bellman–Ford, Floyd–Warshall và Johnson; chú trọng nhận dạng mô hình, lựa chọn đúng thuật toán và xử lý các biến thể nâng cao.

    • 2 phần, 5 bài tập
  5. 2
    Đã tham gia

    Dijkstra từ cơ bản đến nâng cao

    Lộ trình chuyên sâu về thuật toán Dijkstra, được tổ chức từ mô hình đường đi ngắn nhất cơ bản đến các biến thể thường gặp trong Competitive Programming. Trọng tâm không chỉ là cài đặt thuật toán, mà là hình thành khả năng nhận diện mô hình, xây dựng trạng thái, biến đổi bài toán về đồ thị và lựa chọn đúng phiên bản Dijkstra cho từng cấu trúc bài toán.

    • 12 phần, 18 bài tập
  6. 6
    Đã tham gia

    Lập Trình cơ bản

    Đây là lộ trình dành cho những bạn mới vào học lập trình hoặc mới đổi sang ngôn ngữ lập trình mới

    • 3 phần, 20 bài tập
  7. 2
    Đã tham gia

    Hai con trỏ (Two Pointers)

    Lộ trình giúp học viên nắm vững kỹ thuật Hai con trỏ (Two Pointers) từ cơ bản đến các biến thể thường gặp trong lập trình thi đấu. Học viên sẽ học cách nhận biết bài toán phù hợp, lựa chọn vị trí hai con trỏ, xác định quy tắc di chuyển và tối ưu các lời giải vét cạn.

    • 2 phần, 6 bài tập
  8. 3
    Đã tham gia

    Prefix Sum — Tổng tiền tố

    **Prefix Sum — Tổng tiền tố** là một trong những kỹ thuật nền tảng quan trọng nhất trong lập trình thi đấu.

    • 1 phần, 19 bài tập
  9. 2
    Đã tham gia

    Queue (Hàng Đợi)

    Queue là cấu trúc dữ liệu hoạt động theo nguyên tắc FIFO: phần tử vào trước được lấy ra trước. Trong lập trình thi đấu, Queue không chỉ dùng để mô phỏng mà còn là nền tảng của BFS, Topological Sort, Multi-source BFS, 0-1 BFS, Monotonic Queue, Sliding Window và nhiều tối ưu Quy hoạch động quan trọng.

    • 1 phần, 12 bài tập
  10. 5
    Đã tham gia

    LẬP TRÌNH CĂN BẢN C/C++ SC

    Lập trình căn bản C

    • 9 phần, 637 bài tập