|
Hướng dẫn tạo bài tập cho VOJ |
|
|
|
Người viết: Ngô Minh Đức
|
|
24/03/2008 |
|
Trang 1 / 2
Hướng dẫn tạo bài tập cho VOJ
1. Đăng ký
Để đăng ký trở thành người gửi bài (problem-setter) cho VOJ nói riêng và cho SPOJ nói chung, bạn hãy gửi một email xin làm problem-setter đến địa chỉ
Địa chỉ email này đang được bảo vệ khỏi chương trình thư rác, bạn cần bật Javascript để xem nó
Email có thể viết theo mẫu sau đây:
Tiêu đề: [SPOJ] Request for a problem-setter account
Nội dung:
Hi,
My name is (tên của bạn). I would like to become a
problem-setter to contribute my problems to SPOJ. Could you give my
account the problem-setter privelege?
My SPOJ account is (tên tài khoản SPOJ của bạn).
Thank you.
Best Regards,
(tên của bạn)
Sau khi nhận được email chấp nhận từ SPOJ, bạn vui lòng thông báo tên tài khoản cho chúng tôi. Bạn có thể thông báo bằng cách gửi bài trả lời vào topic:
http://vnoi.info/index.php?option=com_fireboard&Itemid=26&func=view&id=26&catid=2
Lưu ý:
Trước khi gửi email đăng ký, bạn nên giải được một số bài tập vì SPOJ yêu cầu problem-setter phải có một khả năng nhất định. Sau khi làm problem-setter, bạn vui lòng đóng góp một số bài tập (bằng tiếng Anh) cho trang chủ SPOJ.
2. Tạo bài mới
2.1. Giao diện
Khi là problem setter cho SPOJ, trên bảng điều khiển của bạn sẽ có thêm một menu như ô màu đỏ dưới đây:
2.2. Tạo bài
Để bắt đầu tạo bài mới, truy cập địa chỉ:
http://spoj.pl/problems/add
Bạn sẽ gặp giao diện sau:
Các thông tin về bài toán của bạn:
- Problem code: mã bài, gồm 8 ký tự in hoa. Khi đã tạo, bạn sẽ không thay đổi được. Ví dụ: V8SCORE, V8ORG,…
- Problem name: tên bài, bạn có thể đánh tiếng Việt unicode. Ví dụ: “Chấm điểm”,…
- Co-authored by: chọn group để chia sẻ quyền quản lý bài. Để tạo bài cho VOJ, bạn chọn group 400:
- Source code limit: giới hạn mã nguồn của chương trình, tính theo bytes
- Assesment type: cách thức chấm điểm.
- Checker: máy chấm
- Placement in main problemset: chọn nơi đặt vào hệ thống bài của trang chủ spoj (spoj.pl). Nếu bạn tạo bài bằng tiếng Anh, hoặc song ngữ Anh/Việt, có thể chọn classical hoặc partial score.
- Testable: đã test được chưa? Để trống nếu bạn chưa muốn mọi người nộp bài (vì test chưa hoàn chỉnh,…)
- Available for use in 3rd party contests: cho phép các contest khác sử dụng bài của mình. Để trống nếu không cần thiết.
- Problem body: Mã html cho nội dung bài toán
Một số tag thường dùng (nếu bạn chưa quen sử dụng html)
-
- <p>: đoạn văn. Các đoạn văn sẽ được phân cách dòng với nhau.
- Ví dụ: <p>Đoạn văn 1</p>.
- <ul>: danh sách <li>: một chỉ mục trong danh sác
- Ví dụ: <ul> <li>Dòng 1</li> <li>Dòng 2</li></ul>
- <b>: chữ đậm
- Ví dụ: <b>thi quốc gia</b>
- <i>: chữ nghiêng
- Ví dụ: <i>thi quốc gia</i>
- <pre>: chữ giữ nguyên định dạng. Khi sử dụng thẻ này, các vị trí xuống dòng sẽ được dữ nguyên như khi bạn viết.
<pre>
<b>Dữ liệu</b>
3
1 2 3
</pre>
-
- Ký hiệu đặc biệt: “≤” dấu <=, "&ge ; " dấu >=
- Ví dụ : 1 &le ; n &le ; 100
- <sub> : chữ nằm phía dưới
- <sup> : chữ nằm phía trên
Đoạn html mẫu cho bài NKINV:
<p>Cho một dãy số a<sub>1</sub>.. a<sub>N</sub>. Một nghịch thế là một cặp số u, v sao cho u < v và a<sub>u</sub> > a<sub>v</sub>.
Nhiệm vụ của bạn là đếm số nghịch thế.</p>
<h3>Dữ liệu</h3>
<ul>
<li>Dòng đầu ghi số nguyên dương N.</li>
<li>N dòng sau mỗi dòng ghi một số a<sub>i</sub> ( 1 ≤ I ≤ N ).</li>
</ul>
<h3>Kết qủa</h3>
<p>Ghi trên một dòng số M duy nhất là số nghịch thế.</p>
<h3>Giới hạn</h3>
<ul>
<li>1 ≤ N ≤ 60000</li>
<li>1 ≤ a<sub>i</sub> ≤ 60000</li>
</ul>
<h3>Ví dụ</h3>
<pre>
<b>Dữ liệu:</b>
3
3
1
2
<b>Kết qủa</b>
2
</pre>
- Dynamic content: dùng nội dung động. Bạn sẽ được dùng Smarty để đọc các biến môi trường của SPOJ. Có thể dùng trong trường hợp muốn tạo bài toán nhiều ngôn ngữ, vì dụ: bài NKMARS. Để trống nếu không cần thiết.
- Master judge for multiple data sets: chương trình tổng hợp kết quả từ kết quả của các test độc lập:
- Available languages: Các ngôn ngữ cho phép nộp bài. Không thay đổi nếu không cần thiết.
- Nhấn nút Create để tạo bài mới!
Chú ý: bạn nên dùng nút create để tạo bài mới trước và nhập nội dung & test sau.
|