Nghiên cứu về các thao tác cơ bản của cấu trúc dữ liệu Stack và Queue
Nghiên cứu về các thao tác cơ bản của cấu trúc dữ liệu Stack và Queue
Bài viết này tập trung vào việc khám phá và củng cố các phương pháp thao tác thường gặp với hai cấu trúc dữ liệu cơ bản: Stack (ngăn xếp) và Queue (hàng đợi). Chúng ta sẽ cùng nhau phân tích một số bài toán điển hình để hiểu rõ hơn cách áp dụng chúng trong thực tế.
Stack (Ng ...
Đăng vào ngày 15 tháng 6 lúc 21:37
Phân tích thuật toán và tối ưu hóa cho các bài toán Lập trình thi đấu
A. Lost Luggage - Tối ưu hóa Lưu lượng và Quy hoạch động
Bài toán yêu cầu tính toán dòng chảy cực đại qua một cấu trúc phân tầng. Thay vì giải trực tiếp bài toán dòng chảy极大 (Max-flow), ta chuyển đổi sang bài toán tìm cắt nhỏ nhất (Min-cut) vì đối với đồ thị này, giá trị cắt nhỏ nhất tương đương với kết quả cần tìm.
Sử dụng quy hoạch động có ...
Đăng vào ngày 14 tháng 6 lúc 04:50
Giải thích: AtCoder Beginner Contest 189
C - Quả Cam Mandarina
Đề xuất một phương pháp khác với độ phức tạp \(\mathcal{O}(n \log n)\).
Đặt cho vị trí thứ \(i\), vị trí đầu tiên bên trái lớn hơn nó là \(L_i\), và vị trí đầu tiên bên phải lớn hơn nó là \(R_i\).
Ta nhận thấy rằng giá trị tối ưu cho vị trí \(i\) khi làm \(x\) chính là \((R_i-L_i-1)\times val_i\).
Có thể sử dụng danh sách ...
Đăng vào ngày 12 tháng 6 lúc 09:28
Các giải thuật tối ưu cho bộ bài toán cạnh tranh lập trình 2026
A. Tối ưu hóa đường đi trên lưới và cây Cartesian
Vì kích thước lưới quá lớn, ta chỉ tập trung vào các điểm biên dạng (0, y). Đường đi được chia nhỏ thành các đoạn dựa trên vị trí cắt qua cột này. Đặt w[y] là độ dài tiền tố liên thông cực đại ở hàng thứ y. Hai điểm (0, u) và (0, v) (với u < v) có thể kết nối trực tiếp khi và chỉ khi tồn tại ...
Đăng vào ngày 12 tháng 6 lúc 02:41
Lập trình C: Bài tập thực hành về Struct và Enum
Bài tập thực hành 1 - Quản lý sách
Viết chương trình quản lý thông tin sách với các yêu cầu sau:
Mã nguồn
#include <stdio.h>
#define MAX_BOOKS 15
typedef struct {
char ma_sach[20]; // Mã sách
char tieu_de[80]; // Tựa sách
char tac_gia[80]; // Tác giả
double gia_ban; // Giá bán
int so_l ...
Đăng vào ngày 30 tháng 5 lúc 02:09
Các Thuật Toán, Cấu Trúc Dữ Liệu và Mẫu Thiết Kế Cơ Bản trong Java
1-1. Tìm kiếm nhị phân
Mô tả thuật toán
Tìm kiếm nhị phân là một thuật toán hiệu quả để tìm kiếm một giá trị cụ thể trong một mảng đã được sắp xếp. Nguyên tắc hoạt động của nó dựa trên việc liên tục chia đôi không gian tìm kiếm. Các bước cơ bản bao gồm:
**Điều kiện tiên quyết**: Mảng đầu vào phải được sắp xếp (ví dụ, theo thứ tự tăng dần) ...
Đăng vào ngày 21 tháng 5 lúc 01:26