Skip to content

Chương 1: Python cho Thi Đấu

Dành cho: Người chưa biết gì về lập trình
Mục tiêu: Nắm vững Python để thi đấu competitive programming


Tại sao học Python trước?

  • Dễ học: Cú pháp đơn giản, gần với ngôn ngữ tự nhiên
  • Nhanh viết: Ít dòng code hơn so với C++
  • Mạnh mẽ: Có nhiều thư viện sẵn cho thi đấu
  • Tư duy: Tập trung vào thuật toán, không lo cú pháp phức tạp

Lưu ý quan trọng

Python chậm hơn C++ về tốc độ chạy. Khi cần tối ưu thời gian, hãy chuyển sang C++ (Chương 2).


Tổng quan nội dung

flowchart TD
    subgraph A["Phần A — Cơ bản ⭐"]
        P01["P01: Cài đặt & Hello World"]
        P02["P02: Biến & Kiểu dữ liệu"]
        P03["P03: Nhập/Xuất dữ liệu"]
        P04["P04: Toán tử & Biểu thức"]
        P05["P05: Câu lệnh điều kiện"]
        P06["P06: Vòng lặp — Cơ bản"]
        P07["P07: Vòng lặp — Nâng cao"]
        P08["P08: String (Xâu ký tự)"]
    end
    subgraph B["Phần B — Cấu trúc dữ liệu ⭐⭐"]
        P09["P09: List & Array 1D"]
        P10["P10: Array 2D & Matrix"]
        P11["P11: Dict & Set"]
        P12["P12: Tuple"]
        P13["P13: Hàm (Function)"]
    end
    subgraph C["Phần C — Thư viện thi đấu ⭐⭐⭐"]
        P14["P14: collections"]
        P15["P15: heapq"]
        P16["P16: itertools"]
        P17["P17: bisect"]
        P18["P18: math & Built-in"]
    end
    subgraph D["Phần D — Tổng hợp ⭐⭐⭐"]
        P19["P19: Kỹ thuật thi đấu"]
        P20["P20: Bài tập tổng hợp"]
    end
    P01 --> P02 --> P03 --> P04 --> P05 --> P06 --> P07 --> P08
    P08 --> P09 --> P10 --> P11 --> P12 --> P13
    P13 --> P14 --> P15 --> P16 --> P17 --> P18
    P18 --> P19 --> P20

Danh sách bài học

Phần A — Cơ bản ⭐

# Bài học Mô tả Độ khó
P01 Cài đặt & Hello World Cài Python, IDE, chạy chương trình đầu tiên
P02 Biến & Kiểu dữ liệu int, float, str, bool, chuyển đổi kiểu
P03 Nhập/Xuất dữ liệu input(), print(), f-string, sep, end
P04 Toán tử & Biểu thức Số học, so sánh, logic, bitwise, ưu tiên
P05 Câu lệnh điều kiện if/elif/else, lồng nhau, ternary
P06 Vòng lặp — Cơ bản for, while, range(), break, continue ⭐⭐
P07 Vòng lặp — Nâng cao Lồng vòng lặp, enumerate, zip, comprehension ⭐⭐
P08 String Xâu ký tự, các phương thức, xử lý xâu ⭐⭐

Phần B — Cấu trúc dữ liệu ⭐⭐

# Bài học Mô tả Độ khó
P09 List & Array 1D Mảng, thao tác, slicing, sort, copy ⭐⭐
P10 Array 2D & Matrix Ma trận, duyệt, xoay, transpose ⭐⭐
P11 Dict & Set Dictionary, Set, defaultdict, Counter ⭐⭐
P12 Tuple Tuple, namedtuple, immutable
P13 Hàm Function, lambda, map, filter, reduce ⭐⭐

Phần C — Thư viện thi đấu ⭐⭐⭐

# Bài học Mô tả Độ khó
P14 collections deque, Counter, defaultdict, OrderedDict ⭐⭐⭐
P15 heapq Hàng đợi ưu tiên, Top-K, Dijkstra ⭐⭐⭐
P16 itertools permutations, combinations, product, accumulate ⭐⭐⭐
P17 bisect Tìm kiếm nhị phân, lower/upper bound ⭐⭐⭐
P18 math & Built-in gcd, lcm, factorial, comb, các hàm built-in ⭐⭐

Phần D — Tổng hợp ⭐⭐⭐

# Bài học Mô tả Độ khó
P19 Kỹ thuật thi đấu Python Trick, pattern, tối ưu code ⭐⭐⭐
P20 Bài tập tổng hợp Luyện tập tất cả kiến thức ⭐⭐⭐

Bài tập luyện tập

Sau khi học xong mỗi bài, hãy luyện tập:


Bài viết liên quan


💬 Bình luận