Ứng dụng của đồ thị – Đồ thị liên thông

Input 2 4 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 7 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 Output Yes No Bài toán này yêu cầu kiểm tra xem một đồ thị có hướng có phải là đồ thị liên thông không. Để làm điều này, chúng ta có thể sử dụng thuật toán DFS hoặc BFS. Trong ví dụ này, tôi ...

Đăng vào ngày 23 tháng 6 lúc 00:53

Các Thuật Toán Duyệt và Xử Lý Cây Nhị Phân

Duyệt Tiền Thứ Tự class GiảiPháp { void duyetTruoc(Đỉnh gốc, List<Integer> kq) { if (gốc == null) return; kq.add(gốc.val); duyetTruoc(gốc.trái, kq); duyetTruoc(gốc.phải, kq); } public List<Integer> duyetTienTu(Đỉnh gốc) { List<Integer> kq = new ArrayList(); duyet ...

Đăng vào ngày 19 tháng 6 lúc 02:03

Giải thuật và Cài đặt Các Bài Toán Từ Cuộc Thi Lập Trình AtCoder ABC299

Bài A – Hộp Bảo Bối Xuất phát từ một chuỗi ký tự gồm ba ký hiệu đặc biệt: '|' (hai dấu gạch đứng biểu thị hai cạnh của hộp) và '*' (một ngôi sao đại diện cho vật phẩm). Nhiệm vụ là xác định xem ngôi sao nằm bên trong hay bên ngoài hộp — tức là có nằm giữa hai dấu gạch hay không. Cách tiếp cận đơn giản: duyệt chuỗi để ghi nhận vị trí đầu tiên và ...

Đăng vào ngày 4 tháng 6 lúc 06:28

Giải Thuật Tìm Kiếm: Phân Tích Bài Toán Từ Cơ Bản Đến Nâng Cao

Bài toán Badge (A) Với ràng buộc n \leq 1000, ta có thể áp dụng tìm kiếm chiều sâu (DFS) kết hợp mảng đánh dấu. Ý tưởng chính: với mỗi đỉnh xuất phát, duyệt theo liên kết cho đến khi gặp đỉnh đã thăm trước đó. #include <iostream> #include <vector> using namespace std; const int MAX = 1005; int n, ket_qua, lien_ket[MAX]; bool da_tha ...

Đăng vào ngày 3 tháng 6 lúc 20:15

Bài giải cho bài tập ybt1255: Vấn đề Labyrinth

Mô tả bài toán Bài toán yêu cầu tìm đường đi ngắn nhất trong một mê cung 5x5. Giải pháp Với kích thước nhỏ như vậy, có nhiều cách để giải quyết vấn đề này. Một phương pháp đơn giản là sử dụng BFS để tìm đường đi ngắn nhất và đồng thời ghi lại đường đi. Trong quá trình BFS, ta không chỉ lưu trữ vị trí hiện tại mà còn lưu chuỗi ký tự thể hiện đườ ...

Đăng vào ngày 1 tháng 6 lúc 20:28

Bài toán Thoát khỏi Địa Ngục Ba Chiều với BFS

Giới thiệu bài toán Bài toán được trích từ POJ 2251 và cuốn "Thông tin học Olympic", yêu cầu tìm thời gian ngắn nhất để thoát khỏi một mê cung ba chiều, hoặc xác định không thể thoát. Đây là dạng mở rộng tự nhiên của thuật toán tìm đường đi ngắn nhất trong đồ thị – sử dụng Tìm kiếm theo chiều rộng (BFS) trên không gian ba chiều. Mô tả bài toán ...

Đăng vào ngày 31 tháng 5 lúc 08:28

Kiểm tra Vùng miền Shenyang ICPC 2021

B - Dãy Phép XOR Bitwise ================================= Mô tả bài toán: Cho một dãy gồm n số nguyên và m mối quan hệ, mỗi mối quan hệ được biểu diễn dưới dạng au ⊕ av = w, nghĩa là phép XOR giữa số thứ u và số thứ v bằng w. Hãy xác định xem có thể tìm được dãy n số thỏa mãn tất cả các mối quan hệ này hay không. Nếu không tồn tại, hãy in ra - ...

Đăng vào ngày 20 tháng 5 lúc 18:03

AtCoder Beginner Contest 384

Bài A: Chuyển đổi chuỗi Cho chuỗi độ dài n và hai ký tự char1, char2. Thay thế tất cả ký tự không phải char1 trong chuỗi bằng char2. Phương pháp Mô phỏng trực tiếp qua vòng lặp trên từng ký tự. Mã nguồn #include <iostream> #include <string> using namespace std; int main() { int length; char target_char, replacement; str ...

Đăng vào ngày 19 tháng 5 lúc 23:51