About Trường THPT chuyên Nguyễn Huệ, Hà Nội
Mục Lục
C++ cơ bản
Một số kỹ thuật trong lập trình
- Mảng cộng dồn
- Xử lý số lớn
- Sàng nguyên tố Eratosthenes
- Sử dụng Deque để tìm min/max
- Thuật toán Left-Right tìm về hai phía nhận vị trí i làm min/max
- Phép nhân Ấn Độ và phép tính lũy thừa
- Kỹ thuật Two-pointer
- Rời rạc hóa và ứng dụng
Thuật toán cơ bản
- Các thuật toán sort phổ biến
- Tìm kiếm nhị phân (Binary search)
- Thuật toán quay lui (Backtracking) - Duyệt
- Duyệt chia đôi tập hợp
- Thuật toán Hash - Z Function so sánh chuỗi
- Thuật toán KMP so sánh chuỗi
- Disjoints Sets
- Cây Trie
- Cây phân đoạn - Segment Tree
- Cây chỉ số nhị phân - Binary Indexed Tree
- Chia căn - Sqrt Decomposition (P1)
- Chia căn - Sqrt Decomposition (P2)
Quy hoạch động
- Bài 1: Giới thiệu về bài toán quy hoạch động
- Bài 2: Một số bài toán quy hoạch động điển hình
- Bài 3: Một số bài tập về Palindrome
- Bài 4: Một số kĩ thuật tối ưu hoá thuật toán Quy Hoạch Động
- Bài 5: Quy hoạch động dùng nhân ma trận
- Thắc mắc về quy hoạch động?
Lý thuyết đồ thị cơ bản
- Bài 1: Giới thiệu khái niệm
- Bài 2: Tổ chức dữ liệu trong đồ thị (P1)
- Bài 2: Tổ chức dữ liệu trong đồ thị (P2)
- Bài 2: Tổ chức dữ liệu trong đồ thị (P3)
- Bài 3: Thuật toán tìm kiếm theo chiều sâu (DFS - Depth First Search)
- Bài 4: Thuật toán tìm kiếm theo chiều rộng (BFS - Breadth First Search)
- Bài 5: Thuật toán Dijkstra tìm đường đi ngắn nhất
- Bài 6: Thuật toán Bellman-Ford tìm đường đi ngắn nhất
- Bài 7: Thuật toán Floyd tìm đường đi ngắn nhất giữa mọi cặp đỉnh
- Bài 8: Bài toán RMQ và thuật toán LCA tìm cha chung gần nhất
- Bài 9: Thuật toán tìm cây khung nhỏ nhất Kruskal, Prim
- Bài 10: Sắp xếp Tô-pô (Topological Sort)