Độ phức tạp
Trước khi viết code, người làm competitive programming luôn tự hỏi: "Thuật toán này chạy có kịp giới hạn thời gian không?". Phân tích độ phức tạp trả lời câu hỏi đó — ước lượng thời gian chạy và bộ nhớ theo kích thước đầu vào , giúp bạn chọn đúng thuật toán trước khi mất công cài đặt.
Các trang trong mục này
Đọc theo thứ tự sau:
- Độ phức tạp thời gian (Big-O) — ký hiệu Big-O và cách ước lượng số phép tính khi tăng. Nền tảng quan trọng nhất.
- Độ phức tạp không gian — ước lượng bộ nhớ theo , tránh vượt Memory Limit.
- Ước lượng giới hạn bài toán — nhìn vào ràng buộc (, ...) để đoán ngay độ phức tạp cần thiết. Kỹ năng "đọc đề ra hướng giải".
Mẹo nhanh
Với giới hạn ~1 giây, máy chấm xử lý được khoảng phép tính đơn giản. Đối chiếu con số này với để loại nhanh các hướng quá chậm — chi tiết trong trang Ước lượng giới hạn bài toán.