Phân Tích Thuật Toán Và Tổng Kết Kỹ Thuật Tại ICPC Thẩm Dương

Tối ưu hóa bài toán chuyển trạng thái với Bitmask DP và BFS Trong các bài toán yêu cầu tìm số bước tối thiểu để chuyển đổi giữa các trạng thái, Quy hoạch động trạng thái (Bitmask DP) thường được nghĩ đến đầu tiên. Tuy nhiên, nếu trạng thái mới (nmask) có thể lớn hơn trạng thái hiện tại (mask), việc cập nhật DP theo thứ tự thông thường sẽ gặp lỗ ...

Đăng vào ngày 3 tháng 9 lúc 00:31

Giải thuật Dijkstra: Tìm đường đi ngắn nhất trong đồ thị

Đặt vấn đề Tưởng tượng bạn là một vị đại thần đang ngủ gục trên bàn làm việc. Bỗng chốc tỉnh dậy, bạn phát hiện mình đang ở trong cung điện nguy nga, có cung nữ hầu hạ, vàng bạc chạm khắc tinh xảo. Một thái giám vội vàng chạy đến báo: "Bệ hạ đã mất, điện hạ cần lập tức trở về Bắc Kinh để nối ngôi! Thêm nữa, Nhị hoàng tử cũng đã xuất phát từ Nam ...

Đăng vào ngày 12 tháng 8 lúc 10:25

Hiểu đúng và viết chuẩn thuật toán tìm đường đi ngắn nhất (SPFA & Dijkstra)

Nhiều lập trình viên gặp khó khăn với các thuật toán tìm đường đi ngắn nhất. Bài viết này sẽ phân tích chi tiết hai thuật toán phổ biến: SPFA và Dijkstra. Thuật toán SPFA (Shortest Path Faster Algorithm) Nguyên lý hoạt động Khởi tạo khoảng cách tại đỉnh nguồn bằng 0, các đỉnh khác bằng vô cùng Đưa đỉnh nguồn vào hàng đợi và đánh dấu đang ...

Đăng vào ngày 18 tháng 6 lúc 05:07

Giải mã các bài toán Codeforces từ A đến H

Mức độ khó: Đỏ, Cam, Vàng, Xanh lá, Xanh dương, Tím, Đen, Đen Bài A Cho hai số nguyên a và b, giải bất phương trình b - 2x ≤ a - x với điều kiện 0 ≤ x ≤ a. Yêu cầu in ra giá trị nhỏ nhất của a - x. Sau khi biến đổi, ta có x ≥ b - a. Từ đó, ta xét các trường hợp để tìm nghiệm tối ưu. #include <cstdio> using namespace std; int main() { ...

Đăng vào ngày 9 tháng 6 lúc 17:22