# 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>