• COOJ
  • Trang chủ
  • Danh sách bài
  • Các bài nộp
  • Thành viên
  • Các kỳ thi
  • Tổ chức
  • Thông tin
    >
    • Máy chấm
    • Custom Checkers
    • Github
VI EN Đăng nhập  hoặc  Đăng ký

Blog - Trang 1

  • Thông tin
  • Thống kê
  • Blog

0

Thuật toán Tham lam

admin đã đăng vào 24, Tháng 7, 2026, 14:57

Thuật toán Tham lam giúp giải bài toán tối ưu bằng cách luôn chọn phương án "có lợi" nhất ở mỗi bước mà không quay lại sửa sai. Phương pháp này giúp code cực kỳ ngắn gọn, chạy siêu nhanh và tiết kiệm bộ nhớ. Tuy nhiên, không phải bài toán nào tham lam cũng đúng, do đó các em cần tỉnh táo tìm đúng tiêu chí chọn lựa và chứng minh cẩn thận!

Đọc tiếp...

admin
o24, Tháng 7, 2026, 14:57 0

0

Hàm đệ quy

admin đã đăng vào 6, Tháng 6, 2026, 17:09

Đệ quy là kỹ thuật lập trình trong đó một hàm tự gọi lại chính nó để giải quyết bài toán bằng cách chia thành các bài toán con nhỏ hơn. Một hàm đệ quy luôn gồm hai phần quan trọng: điều kiện dừng (Base Case) và bước đệ quy (Recursive Step). Nếu thiếu điều kiện dừng, chương trình có thể gây lỗi Stack Overflow. Bài viết minh họa đệ quy qua bài toán tính giai thừa, giải thích cơ chế hoạt động của Call Stack và quy trình xây dựng hàm đệ quy. Đồng thời, tài liệu so sánh đệ quy với vòng lặp và nêu các trường hợp nên hoặc không nên sử dụng đệ quy.

Đọc tiếp...

admin
o6, Tháng 6, 2026, 17:09 0

1

Ngôn ngữ lập trình Scratch

admin đã đăng vào 12, Tháng 4, 2026, 7:58

💻 CodeJudge vừa ra mắt tính năng mới: tích hợp Scratch Editor trực tiếp vào hệ thống chấm bài. Với tính năng này, học sinh có thể lập trình Scratch và nộp bài ngay trên CodeJudge mà không cần sử dụng phần mềm Scratch bên ngoài hay tải tệp .sb3 lên hệ thống.

📝 Trước đây, việc nộp bài Scratch thường yêu cầu lập trình trên Scratch Desktop hoặc trên trang https://scratch.mit.edu , sau đó lưu chương trình thành tệp .sb3 rồi tải lên để chấm. Quy trình này khá bất tiện và khó kiểm tra lại nội dung bài làm.

🔥 Với Scratch Editor tích hợp, chỉ cần chọn ngôn ngữ Scratch khi nộp bài, trình soạn thảo sẽ hiển thị ngay trên trang. Học sinh có thể lập trình trực tiếp, xem trước bài làm và kiểm tra lại chương trình một cách dễ dàng ngay trong hệ thống CodeJudge.

Cảm ơn thầy cô và các bạn đã luôn theo dõi và ủng hộ. Mong rằng mọi người sẽ có những trải nghiệm tốt khi sử dụng hệ thống!

admin
o12, Tháng 4, 2026, 7:58 0

1

Một số kĩ thuật & bài toán Xâu kí tự

admin đã đăng vào 16, Tháng 10, 2025, 14:28

Các bài toán về xâu trong C++ thường tập trung vào việc:

  • Nhận biết bài toán xâu dựa trên dữ liệu đầu vào và thao tác cần thực hiện.
  • Đảo xâu: có reverse() (STL), duyệt ngược, hoặc đảo in-place.
  • Nén RLE: đếm số lần lặp liên tiếp, build chuỗi kết quả an toàn.
  • Giải nén: parse số (có thể nhiều chữ số), kiểm tra biên, append ký tự theo số lần.
  • Mã hóa ASCII theo nhóm cần có quy ước rõ ràng; xử lý an toàn tránh truy cập ngoài vùng.
  • Ép kiểu char↔int dùng '0' offset; cẩn thận với giá trị và giới hạn.

Đọc tiếp...

admin
o16, Tháng 10, 2025, 14:28 0

2

Thêm nhiều bài tập lập trình cho người mới luyện tập

admin đã đăng vào 17, Tháng 9, 2025, 9:01

🎉 Cập nhật thêm nhiều bài tập lập trình mới cho mọi người luyện tập 🎉

Nhằm mang đến môi trường luyện tập phong phú hơn cho các bạn yêu thích lập trình, đội ngũ phát triển của codejudge.edu.vn đã bổ sung thêm rất nhiều bài tập mới. Bộ sưu tập lần này trải dài từ mức cơ bản đến nâng cao, bao quát nhiều chủ đề quan trọng trong thuật toán và lập trình.

✨ Mỗi bài tập đều được chuẩn bị với:

**Đề bài rõ ràng.

Gợi ý hoặc hướng dẫn giải chi tiết.

Code mẫu tham khảo để người học dễ dàng đối chiếu.**

🔔 Nếu bạn đang bắt đầu làm quen với lập trình, hoặc muốn nâng cao kỹ năng giải quyết vấn đề, thì đây chính là nguồn tài nguyên tuyệt vời mà bạn không nên bỏ lỡ!

👉 Truy cập ngay để trải nghiệm và luyện tập tại mục: Bài tập.

Và khi các bạn còn vướng mắc bài nào, hãy truy cập group, đăng tải những thắc mắc để chúng mình cùng nghiên cứu phương án trả lời nhé.

admin
o17, Tháng 9, 2025, 9:01 0

3

Chào mừng bạn đến với CodeJudge

admin đã đăng vào 4, Tháng 8, 2025, 4:47

Chào mừng bạn đến với CodeJudge.

CodeJudge - Code Online Judge - là hệ thống online judge chính thức giúp bạn cập nhập các tin tức về tin học cũng như các bài luyện tập lập trình thi đấu hàn lâm

admin
o4, Tháng 8, 2025, 4:47 1

0

Tìm kiếm nhị phân (Binary search)

admin đã đăng vào 21, Tháng 12, 2025, 3:32

Tìm kiếm nhị phân là thuật toán tìm kiếm trên mảng đã được sắp xếp, mỗi bước loại bỏ một nửa không gian tìm kiếm bằng cách so sánh phần tử giữa với giá trị cần tìm. Nhờ đó, thuật toán đạt độ phức tạp ~O(\log n)~. Các biến thể của tìm kiếm nhị phân cho phép tìm vị trí đầu tiên, cuối cùng hoặc phần tử đầu tiên thỏa mãn một điều kiện cho trước.

Đọc tiếp...

admin
o21, Tháng 12, 2025, 3:32 0

3

Sử dụng Markdown

admin đã đăng vào 24, Tháng 9, 2025, 8:21

Markdown là ngôn ngữ đánh dấu đơn giản, dễ viết, hiển thị chuyên nghiệp.

Ứng dụng trong viết đề bài, lời giải, tài liệu kỹ thuật, ghi chú.

Cú pháp cơ bản

Tiêu đề: dùng #, ##, ### để tạo heading các cấp.

Kiểu chữ: đậm, nghiêng, gạch bỏ.

Danh sách: có thể là không thứ tự -, hoặc có thứ tự 1., 2., 3..

Công thức toán học:

HackMD: $…$

Online Judge: ~…~.

Khối mã (code):

Trong dòng: code

Nhiều dòng: cpp ….

Bảng: dùng | để chia cột, - để làm header.

Đọc tiếp...

admin
o24, Tháng 9, 2025, 8:21 0

1

Khái niệm Đồng dư trong lập trình thi đấu

admin đã đăng vào 24, Tháng 8, 2025, 10:02
Đồng dư
  • Định nghĩa: hai số được gọi là đồng dư nếu chúng có cùng số dư khi chia cho một số ~m~.

  • Ký hiệu: $$ a \equiv b \pmod{m} $$

  • Tính chất: phép cộng, trừ, nhân đều giữ được quan hệ đồng dư.

  • Ứng dụng: giảm số lớn, tránh tràn số, kiểm tra chia hết, và nhiều thuật toán số học trong lập trình thi đấu.

Đọc tiếp...

admin
o24, Tháng 8, 2025, 10:02 4

1

Nội quy Codejudge

admin đã đăng vào 5, Tháng 8, 2025, 4:23

Nội quy diễn đàn Codejudge (Codejudge.site) được thiết lập để đảm bảo môi trường học tập và thảo luận lành mạnh, hiệu quả cho tất cả các thành viên. Dưới đây là một số quy định cơ bản mà các thành viên cần tuân thủ:

Tôn trọng lẫn nhau

Cư xử lịch sự, tôn trọng các thành viên khác trong diễn đàn. Không sử dụng ngôn từ thô tục, xúc phạm, đe dọa hoặc bất kỳ hành vi không đúng mực nào.

Nội dung bài viết

Chỉ đăng bài viết có nội dung liên quan đến học tập, giải thuật, lập trình, hoặc các chủ đề công nghệ liên quan. Không đăng tải thông tin sai lệch, không chính xác hoặc tin đồn chưa được kiểm chứng. Không đăng bài spam, quảng cáo, hoặc bất kỳ nội dung thương mại nào mà không có sự cho phép của quản trị viên.

Bản quyền và quyền sở hữu trí tuệ

Tôn trọng bản quyền của người khác, không sao chép nội dung mà không ghi nguồn hoặc xin phép tác giả. Không đăng tải hoặc chia sẻ tài liệu vi phạm bản quyền.

Giúp đỡ và thảo luận

Khuyến khích giúp đỡ lẫn nhau trong học tập và giải đáp thắc mắc. Không chỉ trích hay đánh giá thấp câu hỏi của người khác; thay vào đó, hãy đưa ra hướng dẫn hoặc lời khuyên hữu ích. Khi trả lời các bài viết hoặc thảo luận, hãy trình bày rõ ràng và dễ hiểu.

Quản trị diễn đàn

Tuân thủ các hướng dẫn và quyết định của quản trị viên. Báo cáo hành vi vi phạm nội quy hoặc bài viết không phù hợp cho quản trị viên hoặc các thành viên có trách nhiệm.

Bảo mật thông tin

Không chia sẻ thông tin cá nhân của bạn hoặc của người khác trên diễn đàn. Tôn trọng quyền riêng tư của các thành viên khác.

Xử lý vi phạm

Các vi phạm nội quy sẽ bị xử lý theo mức độ, từ cảnh cáo, xóa bài viết, đến khóa tài khoản tạm thời hoặc vĩnh viễn. Thành viên bị xử lý có quyền khiếu nại quyết định của quản trị viên nhưng phải tuân thủ quy trình khiếu nại.

Cập nhật và thay đổi nội quy

Nội quy có thể được cập nhật và thay đổi theo thời gian, các thành viên có trách nhiệm theo dõi và tuân thủ. Nội quy này nhằm mục đích tạo ra một môi trường học tập tích cực và hiệu quả cho tất cả mọi người. Việc tuân thủ nội quy không chỉ giúp bạn và các thành viên khác có trải nghiệm tốt hơn mà còn góp phần xây dựng một cộng đồng học tập mạnh mẽ.

admin
o5, Tháng 8, 2025, 4:23 0

dựa trên nền tảng DMOJ | theo dõi VNOI trên Github và Facebook