# Giới thiệu về CP (Competitve Programming) ## Sách, Website tài liệu 1. [CSES's CP Handbook](https://cses.fi/book/book.pdf) 2. [Competitive Programming 3](https://drive.google.com/file/d/1xhFrHJ_husDMHPUWP53meq3Hcsz23Nid/view?pli=1) 3. [cp-algorithms](https://cp-algorithms.com/index.html) 4. [VNOI Wiki](https://wiki.vnoi.info/) --- ## Website luyện bài 1. [CSES Problem Set](https://cses.fi/problemset/list/) 2. [Codeforces](https://codeforces.com/) -- For all level 3. [Atcoder](https://atcoder.jp/) -- Quite intermediate 4. [VNOI](https://oj.vnoi.info/), [LQDOJ](https://lqdoj.edu.vn/) 5. [MarisaOJ](https://marisaoj.com/) -- Beginner-friendly --- ## Cách học (Kinh nghiệm cá nhân) ### Note - CTDL/GT: Cấu trúc dữ liệu/ Thuật toán Học hết lý thuyết dễ (anh học gần hết 😊) trước, song song với đó là làm bài, gặp kiến thức mới thì học. Các bài CF < 1000 hầu hết guessy. Các bài CF < 1500 hầu hết không sử dụng các CTDL/GT mà chỉ đánh vào tư duy lập trình -> Học lý thuyết song song với giải CF. Khi học xong 1 nội dung, cần hiểu rõ các vấn đề sau: 1. CTDL/GT đó được sử mục đích gì, trong trường hợp nào (Không sài được trong trường hợp nào). 2. Độ phức tạp thời gian, không gian của CTDL/GT đó. 3. Các biến, mảng, ... được sử dụng trong CTDL/GT đó (Luyện tập cách cài đặt CTDL/GT) và mục đích sử dụng của chúng. **Luyện Codeforces** **Nội dung trong sách** 1. CSES's CP Handbook: -Phần I: Học tất cả (trừ phần 9.3,10,15.3,16,17,20) -Phần II: Học phần 21 <details> <summary><b>IMPORTANT</b></summary> LÀM ƠN, ĐỪNG THẤY KHÓ QUÁ RỒI BỎ. </details>