Tổng quan và ứng dụng của cấu trúc Disjoint Set Union (DSU)
Cấu trúc Disjoint Set Union (DSU), hay còn gọi là Union-Find, được dùng để quản lý các tập hợp rời rạc và hỗ trợ hai thao tác chính: kiểm tra xem hai phần tử có cùng tập hợp hay không (Find), và gộp hai tập hợp lại với nhau (Union).
Thay vì lưu trữ toàn bộ cấu trúc cây, DSU chỉ cần mảng parent để lưu cha trực tiếp của mỗi nút. Để kiểm tra tính ...
Đăng vào ngày 17 tháng 6 lúc 01:16
Phân tích chiến lược giải thuật Codeforces Round 959
A. Diverse Game
Bài toán yêu cầu hoán đổi các phần tử trong ma trận sao cho không có phần tử nào giữ nguyên vị trí cũ. Một cách tiếp cận đơn giản là dịch chuyển các giá trị theo một vòng tuần hoàn. Với mỗi phần tử tại vị trí (i, j) trong ma trận n x m, ta gán giá trị mới bằng (a[i][j] % (n * m)) + 1. Phép toán này đảm bảo mọi giá trị đều đư ...
Đăng vào ngày 4 tháng 6 lúc 01:27