# Chuyên đề học sinh giỏi Tin học THCS - THPT ###### tags: `class` ## Toán học trong lập trình - GCD, LCM - Số học về phần dư, đồng dư - Thuật toán Euclid mở rộng, nghịch đảo module - Phép nhân Ấn Độ, lũy thừa nhị phân - Số nguyên tố, sàng Eratosthenes, phân tích thừa số thành nhân tử - Các hệ đếm - Tổ hợp, chỉnh hợp, hoán vị - Số hoàn hảo, số Fibonacci, số Catalan... - Hình học tính toán ## Thiết kế giải thuật - Tham lam - Đệ quy, chia để trị - Vét cạn bằng quay lui - Quy hoạch động ## Cấu trúc dữ liệu - Mảng - Xâu - Từ điển (dict, map) - Tập hợp - Ngăn xếp - Hàng đợi - Hàng đợi hai đầu - Hàng đợi ưu tiên - Đồ thị - Cây ## Giải thuật - Sắp xếp - Tìm kiếm - Tìm kiếm nhị phân, tam phân ## Một số kỹ thuật đặc biệt - Tổng tiền tố - Hai con trỏ - Mảng hậu tố - Sqrt decomposition, Mo's algorithm - Bao hàm - loại trừ - Thao tác trên bit ## Đồ thị - Tìm kiếm trên đồ thị: BFS, DFS - Đường đi và chu trình: Euler và Hamilton - Định chiều đồ thị, khớp và cầu - Các thành phần liên thông - Tìm đường đi ngắn nhất - Cây khung nhỏ nhất - Sắp xếp topo - Đồ thị hai phía - Luồng cực đại trên mạng