Giải đề CF1399E1 Chia trọng số (bản dễ)
Phân tích bài toán
Đề bài yêu cầu chọn các cạnh để chia đôi trọng số (làm tròn xuống) sao cho tổng trọng số các đường từ gốc đến các lá không vượt quá giá trị cho trước S. Mỗi lần chọn cạnh, ta chỉ được chọn một cạnh duy nhất và tính lại tổng.
Chiến lược giải quyết
Chúng ta cần xác định mức độ ảnh hưởng của từng cạnh đến tổng trọng số bằng cá ...
Đăng vào ngày 30 tháng 9 lúc 09:58
Tìm kiếm theo chiều rộng và chiều sâu: Cài đặt từ cơ bản đến nâng cao
Tìm kiếm theo chiều rộng (BFS) là kỹ thuật duyệt đồ thị hoặc lưới bắt đầu từ một điểm, mở rộng đều các nút ở cùng một cấp độ trước khi đi sâu hơn. Thực hiện bằng cấu trúc hàng đợi, mỗi đỉnh chỉ được thêm vào một lần nên không cần hoàn tác trạng thái đã duyệt như trong DFS.
Cài đặt BFS tìm đường đi ngắn nhất
Đoạn mã sau minh họa cách tìm đường ...
Đăng vào ngày 26 tháng 9 lúc 19:29
Chiến lược tìm kiếm DFS và BFS trong giải quyết bài toán không gian trạng thái
1. Khái niệm cốt lõi về tìm kiếm
Trong lập trình thuật toán, tìm kiếm (Search) là chiến lược khám phá hệ thống một không gian các lời giải khả thi để tìm ra một hoặc toàn bộ các cấu hình thỏa mãn điều kiện cho trước. Đây là nền tảng của các bài toán tối ưu hóa và tổ hợp khi không có công thức giải trực tiếp.
Tìm kiếm theo chiều sâu (Depth-Fir ...
Đăng vào ngày 15 tháng 9 lúc 09:50
Duyệt theo chiều sâu - Loại bỏ phần tử trùng lặp trong cấu trúc cây
Thuật toán duyệt theo chiều sâu (Depth-First Search - DFS) là phương pháp khám phá hoặc tìm kiếm trên cây hoặc đồ thị. Thuật toán này sẽ đi sâu nhất có thể theo nhánh của cây. Khi tất cả các cạnh liên quan đến nút v đã được kiểm tra, quá trình sẽ quay lại nút gốc tạo ra cạnh đó. Quy trình này tiếp tục cho đến khi tất cả các nút có thể truy cập ...
Đăng vào ngày 9 tháng 9 lúc 14:01
Trò chơi tấn công liên tục 2G
Mô tả bài toán:
lxhgww đang chơi một trò chơi và có rất nhiều trang bị. Mỗi trang bị có hai thuộc tính, các giá trị này được biểu diễn bằng các số nguyên trong khoảng [1, 10000]. Khi sử dụng một trang bị, lxhgww chỉ có thể chọn một trong hai thuộc tính để tấn công. Mỗi trang bị chỉ có thể được sử dụng một lần.
Trong trận đấu cuối cùng, lxhgw ...
Đăng vào ngày 18 tháng 8 lúc 08:43
Giải mã bài toán P5318: Hướng dẫn chi tiết về duyệt đồ thị bằng DFS đệ quy
Chào mừng các bạn đến với bài viết giải thích chi tiết cách áp dụng kỹ thuật Duyệt theo chiều sâu (DFS) sử dụng đệ quy để giải quyết bài toán P5318. Chúng ta sẽ cùng nhau khám phá từng bước một cách thật tự nhiên và dễ hiểu, như một cuộc trò chuyện giữa những người bạn.
Phân tích bài toán (Phiên bản siêu đơn giản)
Hãy tưởng tượng bạn đ ...
Đăng vào ngày 26 tháng 7 lúc 14:48
Tính Đường Kính và Trọng Tâm của Cây
Đường Kính Của Cây
Trong lý thuyết đồ thị, đường kính của một cây được định nghĩa là độ dài của đường đi đơn dài nhất giữa bất kỳ cặp nút nào trong cây.
Phương Pháp Tìm Đường Kính
Một thuật toán hiệu quả để xác định đường kính của cây bao gồm hai bước Duyệt Sâu (DFS):
Chọn một nút bất kỳ trong cây (ví dụ, nút có chỉ số 1) và thực hiện thu ...
Đăng vào ngày 19 tháng 7 lúc 02:27
Giải thuật vét cạn: Từ sắp xếp chèn đến hoán vị và bài toán ba lô 0-1
Giải thuật vét càn (brute force) là một trong những phương pháp cơ bản nhất trong thiết kế giải thuật — không dựa trên tối ưu hóa hay suy luận sâu, mà dựa vào việc kiểm tra từng khả năng có thể xảy ra cho đến khi tìm được nghiệm hoặc xác định không tồn tại nghiệm.
Khái niệm và đặc điểm
Giải thuật vét càn còn được gọi là phương pháp liệt kê hoặ ...
Đăng vào ngày 12 tháng 7 lúc 12:01
Thuật toán Đếm Gạch Đen Bằng DFS
Mô tả vấn đề
Có một căn phòng hình chữ nhật được lát bằng các viên gạch vuông màu đen và đỏ. Bạn đứng trên một viên gạch đen và chỉ có thể di chuyển đến các viên gạch đen khác nằm liền kề (trên, dưới, trái, phải). Hãy viết chương trình để tính tổng số viên gạch đen bạn có thể đi đến.
Định dạng đầu vào
Đầu vào bao gồm nhiều bộ dữ liệu. Mỗi bộ ...
Đăng vào ngày 30 tháng 6 lúc 11:40
Bài toán về cấu trúc cây và giải thuật
P2015 Cây nhị phân táo
(f_{u,i}) thể hiện giá trị lớn nhất khi giữ lại i cạnh trong cây con gốc tại u.
(f_{u,i}=max{f_{v,j}+f{u,i-j-1}+w})
#include<cmath>
#include<queue>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define maxn 210
#define maxm 300000
#def ...
Đăng vào ngày 28 tháng 6 lúc 22:47