Mình đóng góp thêm 1 vài kinh nghiệm cá nhân khi làm bài thi kiểu IOI, thêm vào những điều của Đức:
Tạo template
Luyện tập ở nhà hay ở trường, mình tạo 1 file như ở link kèm. Mỗi khi bắt đầu code thì edit file name và its content. Khi đi thi, vừa vào phòng thi có thể múa luôn trên bàn phím để code template file để doạ bọn bên cạnh.
(Bạn nào bị disqualified vì sờ vào máy trước khi giám thị cho phép hay quên sửa tên file, etc. thì không phải lỗi của mình nhé. Nhắc rồi!)
Viết tất cả ra giấy nháp
Bạn nghĩ rằng giải thuật đã chắc chắn chính xác để đạt 100% và sẵn sàng để bắt đầu code? Hãy viết sơ lược pseudocode ra giấy và các cấu trúc dữ liệu sẽ sử dụng. Dành thời gian để viết tất ra giấy nháp, sau đó bạn sẽ hoàn thành "coding phase" rất nhanh, sau đó là test và debug. Theo mình thì chẳng có lý do gì để đụng tới bàn phím khi mà giải thuật vẫn còn mờ ảo trong đầu. Những kì thi không tính tới thời gian code thường sẽ có đủ thời gian cho bạn nghĩ, viết, code và debug.
Luyện code nhanh khi đã sẵn sàng ( trong giai đoạn chuẩn bị, không phải khi thi )
Giải thuật đã được viết rõ ràng ra trước mắt, không còn gì để nghi ngờ nữa. Bạn thử xem nhanh nhất code mất bao lâu. Nếu thời gian code 1 bài mà hơn 30 phút thì đó là chưa đạt. Xoá hết chương trình đi mà code lại từ đầu. Lần thứ 2 trở đi, mọi thứ sẽ rõ ràng hơn trong đầu mà code nhanh hơn.
Không tốn thời gian vào những standard/popular algorithms
Luyện lại những thuật toán được nhắc tới trong
http://vnoi.info/index.php?option=com_fireboard&Itemid=26&func=view&id=12052&catid=13 để có thể "nhắm mắt code không bug". Ngày xưa đi thi mình cũng "thuộc" được khá nhiều thuật toán chuẩn
File gửi kèm: Tên file:
TEMP.txtĐộ lớn file: 302
Kiểm tra tên file input & output
Với loại bài nhập xuất với file (như hầu hết ở các bài thi QG), kiểm tra kĩ tên file (file .IN hay .INP) trước khi chuyển sang bài khác và trước khi hết giờ 10 phút. Làm cho dù không được trọn vẹn 100% thì cũng đừng bỏ không bài đấy đi vì lỗi "thiếu hiểu biết" này :d
Estimate thời gian hoàn thành
Khi thi, mình tin là bạn sẽ cảm nhận được mình có thể hoàn thành được bài này trước khi hết thời gian hay không (so với thời gian thường hoàn thành khi luyện tập). Nếu cảm thấy còn quá ít thời gian để làm trọn vẹn 1 bài trước khi hết giờ, hãy đảm bảo sao cho mình có 1 chương trình đủ để ăn điểm và kiểm tra kĩ càng các bài đã hoàn thành. Kinh nghiệm cho thấy là mình hầu như không bao giờ code đúng trong cái khoảng thời gian cuối hạn hẹp và đầy áp lực.