---
# System prepended metadata

title: Giới thiệu về CP (Competitve Programming)
tags: [Competitve Programming]

---

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

