Hướng dẫn đóng góp thử thách (contribute challenge) trên nền tảng Viblo Code

Đóng góp thử thách (Contribute Challenge) là một chức năng mới được phát triển trên nền tảng Viblo Code của Viblo Platform với mục đích thu thập được nhiều hơn những bài toán đầy thách thức về thuật toán và tối ưu hóa code từ chính các lập trình viên. Từ những chia sẻ và kinh nghiệm của tất cả mọi người, Viblo Code sẽ ngày một đa dạng để chúng ta có thể học tập và rèn luyện các kiến thức về giải thuật.

Chúng ta cùng đi vào hướng dẫn chi tiết với chức năng này nhé:

Trước tiên truy cập vào trang chủ của Viblo Code https://code.viblo.asia

Bước 1: Đi đến trang đóng góp thử thách

Ở giao diện trang chủ, bạn hãy click vào hình đại diện góc bên phải để hiển thị menu của người dùng và chọn tính năng “Đóng góp thử thách

Sau đó hệ thống sẽ chuyển hướng chúng ta đến trang đóng góp thử thách như bên dưới

image.png

Bước 2: Điền các thông tin về thử thách của bạn

image.png

  • Tiêu đề (Title): Tiêu đề của thử thách.

Lưu ý: Đặt Headings 1 (Nên sử dụng tiếng Anh do hệ thống chưa hỗ trợ đặt hai tên khác nhau)

  • Mô tả (Description): Mô tả chi tiết về thử thách. Ở đây bạn có thể nhập nội dung với cú pháp Markdown. Để hiểu rõ hơn về cú pháp này bạn vào link hướng dẫn https://viblo.asia/helps/cach-su-dung-markdown-bxjvZYnwkJZ. Bạn vẫn có thể sử dụng được cú pháp nhập nội dung thông thường.

👉 Input: Đặt Headings 2 (Không đặt kèm ràng buộc trong input): Mô tả đầu vào.

👉 Constraints (Ràng buộc): Headings 2. Bao gồm: Ràng buộc về dữ liệu, ràng buộc về bộ nhớ và thời gian thực thi.

👉 Subtasks: Các bài đóng góp từ rank D trở lên cần chia subtasks, E và F có thể không cần (nếu có càng tốt). Các subtasks phải giải được bằng những giải thuật khác nhau.

👉 Output: Đặt Headings 2 (Mô tả đầu ra). Ví dụ một bài chuẩn: https://code.viblo.asia/challenges/XODJQKPry0Z

  • Gợi ý lời giải (Editorial): phần gợi ý dành cho người tham gia thử thách
  • Điểm (Score): điều chỉnh mức điểm người chơi có thể đạt được khi tham gia thử thách của bạn. Điểm sẽ tương đương với hạng được tính như bảng bên dưới:
Hạng Khoảng điểm
F 0 - 50
E 60 - 150
D 160 - 200
C 210 - 300
B 310 - 450
A 460 - 600
S 610 - 900

Lưu ý: Phần điểm do người dùng tự đánh giá chỉ được sử dụng để tham khảo trong quá trình đánh giá rank cuối cùng của BQT.

  • Tag: Gán tag cho thử thách của bạn. Bạn được phép gán tối đa 5 tags.

  • Giới hạn CPU (CPU limit): Thời gian chạy tối đa của 1 testcase, nằm trong khoảng 1-20 giây

  • Giới hạn bộ nhớ (Memory limit): Dung lượng bộ nhớ tối đa để kiểm tra testcase, nằm trong khoảng 1-512 MB. Bạn có thể lựa chọn đơn vị đo phù hợp với yêu cầu thử thách của bạn

  • Test Cases: Bạn hãy tải tệp testcases mẫu về. Lưu ý tệp tin ở định dạng “.txt” và được nén trong 1 file.zip.

  • Nhập sample tests: Những sample test được công khai trong thử thách để người tham gia thử thách có thể chạy thử.

Lưu ý: Nhập tên tệp tin testcase dưới dạng mảng để hiển thị sample tests, dùng phím enter để phân cách các phần tử trong mảng (vd: test001.txt test002.txt).

  • Lời giải (Solution hay sample codes): click vào nút “Lời giải” để hiển thị popups. Bạn chọn ngôn ngữ sử dụng và nhập nội dung phần code mẫu sau đó click vào nút “Tạo mới”. Bạn có thể thêm, sửa, xóa lời giải tùy ý. image.png

Bước 3: Lưu nháp hoặc gửi duyệt thử thách

image.png

  • Lưu bản nháp (Save a Draft): Nếu bạn chưa chắc chắn để gửi thử thách của mình cho đội ngũ kiểm duyệt. Thử thách của bạn sẽ ở trạng thái “Bản nháp”. Hãy chọn chức năng này để lưu tạm thời và tiếp tục sửa đổi cho đến khi chắc chắn bạn có thể gửi lại.
  • Gửi để duyệt (Submit for Review): Nếu đã chắc chắn với thử thách của mình, hãy chọn chức năng này để gửi thử thách tới đội ngũ kiểm duyệt. Thử thách của bạn sẽ ở trạng thái “Đang được kiểm tra”. Chúng tôi sẽ duyệt thử thách của bạn trước khi công khai challenge.
  • Hủy bỏ (Cancel): Hủy bỏ thử thách và trở về trang trước đó.

Sau khi lưu lại thử thách, bạn sẽ được điều hướng tới trang “Thử thách của tôi” (My Challenges).

image.png

Bước 4: Kiểm tra và xem lại thử thách của bạn

Bạn có thể kiểm tra lại các thử thách mà mình đã đóng góp bằng cách truy cập vào trang "Thử thách của tôi" trong menu của người dùng.

image.png

Chỉ những thử thách đã được chấp nhận mới được tính điểm trên BXH

Lưu ý về nội dung và cấu trúc đề:

👉 Không ra các đề bài chỉ sử dụng thuần số lớn (vẫn có thể ra các bài mà thuật toán chính là một thuật toán khác, nhưng cho thêm số lớn để tăng độ khó).

👉 Lưu ý đặt tag cho bài tập của mình.

👉 Số lượng testcases đảm bảo tối thiểu là 20.

👉 Nội dung đề trong sáng, rõ ràng mạch lạc. Không ra các đề bài liên quan tới chính trị, phản động, xuyên tạc hay có tính kích động,...

👉 Cần upload kèm theo solution mẫu (ưu tiên sử dụng C++ hoặc Python, Java).

Bạn có thể sử dụng bộ lọc ở bên trái với các trạng thái:

  • Public (Công khai): Thử thách của bạn đã được công khai sẽ hiển thị ở đây
  • Reviewing (Đang được duyệt): Thử thách của bạn đang được duyệt sẽ hiển thị ở đây
  • Approved (Chấp nhận): Thử thách của bạn được chấp nhận nhưng chưa được quản trị viên công khai sẽ được hiển thị ở đây .
  • Draft (Bản nháp) : Thử thách mà bạn lưu tạm thời sẽ được hiển thị tại đây
  • Rejected (Đã bị loại bỏ): Những thử thách bị loại bỏ sẽ được hiển thị ở đây với lý do loại bỏ của từng thử thách

Lưu ý: Chỉ với thử thách có trạng thái Draft (bản nháp) mới được phép sửa lại và gửi cho đội ngũ kiểm duyệt

Video hướng dẫn đóng góp thử thách trên Viblo Code

Viblo
Let's register a Viblo Account to get more interesting posts.