Bài 1: Ma trận kề C++/Pascal Lý thuyết đồ thị

Trong lý thuyết đồ thị, việc tổ chức dữ liệu cho từng bài toán, thuật toán rất quan trọng, nó quyết định kích thước dữ liệu bài toán, thời gian thực tế của bài toán. Vì vậy trong bài viết này mình sẽ giới thiệu các bạn một số cách tổ chức dữ liệu trong […]

Continue reading


Bài 6: Thuật toán loang trên ma trận

Thuật toán loang (Thuật toán vết dầu loang) là một trong những thuật toán được dùng khá nhiều trong tin học, điển hình là thuật toán loang trên ma trận này được ứng dụng để đếm số thành phần liên thông trên ma trận. Nó trong các trò chơi nổi tiếng như line 98, trò […]

Continue reading


Bài 4: Thuật toán tìm kiếm theo chiều sâu DFS pascal c++

Thuật toán tìm kiếm theo chiều sâu DFS là thuật toán tìm kiếm trên cây hoặc đồ thị. Thuật toán này khác với BFS ở chỗ BFS duyệt theo chiều rộng (những đỉnh gần đỉnh gốc sẽ được thăm trước), còn DFS duyệt theo chiều sâu (Xuất phát từ đỉnh gốc, từ đỉnh đó phát […]

Continue reading


[Cơ bản] Ứng dụng BFS để giải quyết bài tập đường đi của quân mã trong đồ thị

Như các bạn đã biết, BFS là thuật toán duyệt theo chiều rộng, thuật toán này có thể ra tìm đường đi ngắn nhất, trong mô hình đồ thị cơ bản chúng ta không chỉ dùng bfs trên các đỉnh thông thường, mà chúng ta còn có thể dùng BFS để giải quyết các bài […]

Continue reading


Bài 5: Thuật toán tìm kiếm theo chiều rộng BFS pascal c++

Thuật toán tìm kiếm theo chiều rộng BFS là thuật toán tìm kiếm trong đồ thị bằng cách tìm kiếm dựa trên 2 thao tác chính là: cho trước một đỉnh của đồ thị và thêm các đỉnh kề với nó vào danh sách chờ duyệt. Phương pháp cài đặt này là “lập lịch” để […]

Continue reading


Cây khung nhỏ nhất QBMST spoj: Kruskal, Prim heap

Code tham khảo bài QBMST được viết bằng thuật toán Kruskal (đã bỏ một số phần thừa trong sách TLGK Chuyên tin) Thuật toán kruskal dưới đây được biểu diễn đồ thị bằng danh sách cạnh trong lí thuyết đồ thị:

Code tham khảo bài QBMST được viết bằng Prim Heap

Continue reading