You are on page 1of 5

Buổi Nội dung

CHƯƠNG 1: NHẬP MÔN - KIẾN THỨC CƠ BẢN

Hướng dẫn sử dụng IDE


Cấu trúc một chương trình C++ cơ bản
Lệnh nhập/xuất
Biến, hằng số, kiểu dữ liệu
1
Toán tử trong C++
Các hàm toán học phổ biến
Comment
Những chú ý khi submit trên nền tảng chấm bài online
Chữa bài tập Buổi 1
2 Define, Typedef, Using
Cấu trúc rẽ nhánh: If else, switch - case
Chữa bài tập Buổi 2
3 Vòng lặp: For, While, Do While
Break, Continue, Go to
Chữa bài tập Buổi 3
Hàm trong C++
4 Khai báo nguyên mẫu hàm (Function Prototype)
Biến toàn cục, biến cục bộ
Tham chiếu & Tham trị
Chữa bài tập Buổi 4
Mảng 1 chiều
5 Duyệt mảng 1 chiều
Mảng đánh dấu
Các bài tập cơ bản về mảng 1 chiều
Chữa bài tập Buổi 5

6
Mảng 2 chiều
6
Các bài tập cơ bản về mảng 2 chiều
Các phép toán trên ma trận
Chữa bài tập Buổi 6
String
Các hàm xử lý string cơ bản
7
Chuyển đổi giữa số và string
Bảng mã ASCII
Stringstream và bài tập áp dụng
Chữa bài tập Buổi 7
8
BigNum
9 Contest 1
CHƯƠNG 2: CẤU TRÚC DỮ LIỆU & THUẬT TOÁN
Độ phức tạp thuật toán (BigO)
Sắp xếp chọn (Selection Sort)
10 Sắp xếp nổi bọt (Bubble Sort)
Sắp xến chèn (Insertion Sort)
Đếm phân phối (Counting Sort)
Hàm sort và stable_sort trong C++
Xây dựng comparison function cho hàm sort
11
Biểu thức Lambda (Lambda Expression)
Chữa một số bài tập về sắp xếp
Tìm kiếm tuyến tính (Linear Search)
12 Tìm kiếm nhị phân (Binary Search)
Binary Search on Answer
Hàm binary_search, lower_bound, upper_bound, equal_range
13
Chữa một số bài tập về tìm kiếm
14 Chữa bài tập về sắp xếp & tìm kiếm (phần 1)
15 Chữa bài tập về sắp xếp & tìm kiếm (phần 2)
Số nguyên tố
Sàng nguyên tố Eratosthenes
16 Phân tích thừa số nguyên tố

Tính tổng ước & đếm ước của số nguyên


Phi hàm Euler
17 Chữa bài tập số học (phần 1)

Dãy số Fibonacci
Ước chung lớn nhất & Bội chung nhỏ nhất
18 Các hệ đếm phổ biến

Lý thuyết đồng dư
Tính tổ hợp chập K của N
19 Chữa bài tập số học (phần 2)
20 Contest 2

Vector, Pair, Tuple


21 Set, Multiset, Unordered_set

Map, Multimap, Unordered_map


22 Chữa bài tập Buổi 21

Mảng cộng dồn (Prefix Sum): 1D & 2D


23
Mảng hiệu (Difference Array)
24 Chữa bài tập Buổi 23

Kĩ thuật hai con trỏ (Two Pointers)


25
Kĩ thuật cửa sổ trượt (Sliding Window)
26 Chữa bài tập Buổi 25
27 Chữa bài tập String nâng cao (phần 1)
28 Chữa bài tập String nâng cao (phần 2)

Bitset
29
Toán tử bitwise (Bitwise Operator)
30 Chữa bài tập Buổi 29

Stack
31
Queue, Deque, Priority Queue
32 Chữa bài tập Buổi 31
33 Contest 3
CHƯƠNG 3: KĨ THUẬT THIẾT KẾ THUẬT TOÁN

Đệ quy (Recursion)
34 Các dạng đệ quy thường gặp

Các bài toán phổ biến về đệ quy


35 Chữa bài tập Buổi 34

Sắp xếp nhanh (Quick Sort)


Giải thuật Euclid mở rộng (Extended Euclid)
36
Định lý nhỏ Fermat
Nghịch đảo modulo (Modular Multiplicative Inverse)
Chữa thêm bài tập về đệ quy
37
Kĩ thuật loang trên mảng 2 chiều
Phương pháp sinh (Generation)
38 Quay lui (Backtracking)

Tổ hợp, chỉnh hợp, hoán vị


39 Chữa bài tập Buổi 38

Nhánh cận (Branch and Bound)


40
40
Kĩ thuật Meet In The Middle (MITM)

Vét cạn (Brute Force)

41 Chữa thêm bài tập về quay lui, vét cạn

Kĩ thuật sinh test, viết trình chấm

Tham lam (Greedy)


42
Một số bài tập cơ bản về tham lam

43 Chữa bài tập Buổi 42 (phần 1)

44 Chữa bài tập Buổi 42 (phần 2)

Chia để trị (Divide and Conquer)

45 Lũy thừa nhị phân

Tính số Fibonacci thứ N (nhân ma trận)

46 Chữa bài tập Buổi 45 (phần 1)

47 Chữa bài tập Buổi 45 (phần 2)

Quy hoạch động (Dynamic Programming)


48
Làm quen với QHĐ cơ bản

You might also like