Phương Pháp Tối Ưu Hóa Độ Nghiêng Sử Dụng Cây Phân Đoạn Lý Siêu
Khi giải các bài toán quy hoạch động phức tạp, đặc biệt là những trường hợp chuyển trạng thái phụ thuộc vào hàm bậc nhất của chỉ số, kỹ thuật tối ưu hóa độ nghiêng (Slope Optimization) trở thành công cụ đắc lực. Tuy nhiên, việc duy trì đường thẳng và truy vấn điểm tối ưu thường phức tạp nếu áp dụng phương pháp deque thông thường. Trong tình hu ...
Đăng vào ngày 10 tháng 8 lúc 12:42
extern const trong C++ và các khái niệm liên quan
Liên kết const giữa nhiều file
Trong C++, khi cần chia sẻ biến const giữa các file, cần hiểu rõ cơ chế liên kết (linkage). Mặc định, biến const có liên kết nội bộ (internal linkage), nghĩa là chỉ visible trong file định nghĩa nó. Để chia sẻ xuyên file, ta dùng từ khóa extern để thay đổi thành liên kết ngoại (external linkage).
Cơ chế thực tế: ...
Đăng vào ngày 9 tháng 8 lúc 07:45
Tối ưu chiến thuật tiêu diệt quái vật bằng kỹ năng trong Go
Trong bài toán này, ta cần tìm số lượng kỹ năng tối thiểu để hạ gục quái vật. Mỗi kỹ năng có sát thương cơ bản và khả năng gây sát thương gấp đôi khi máu quái vật không cao hơn ngưỡng nhất định. Mỗi kỹ năng chỉ dùng được một lần duy nhất.
Phân tích bài toán
Thông tin đầu vào gồm:
n: số lượng kỹ năng (1 ≤ n ≤ 10)
m: lượng máu ban đầu của quái ...
Đăng vào ngày 8 tháng 8 lúc 03:13
Kỹ thuật lựa chọn và những lưu ý khi sử dụng kiểu dữ liệu cơ bản trong C++
Việc lựa chọn kiểu dữ liệu phù hợp trong C++ không chỉ ảnh hưởng đến hiệu suất mà còn giúp hạn chế những lỗi logic khó phát hiện. Dưới đây là những quy tắc thực tế và các cạm bẫy cần tránh khi làm việc với các kiểu dữ liệu tích hợp (built-in types).
1. Nguyên tắc lựa chọn kiểu dữ liệu
Sử dụng kiểu không dấu (unsigned) khi cần thiết: Chỉ ...
Đăng vào ngày 3 tháng 8 lúc 09:26
Kỹ thuật tìm kiếm nhị phân tối ưu trên số nguyên và số thực
Tổng quan về thuật toán tìm kiếm nhị phân
Tìm kiếm nhị phân (Binary Search) là một kỹ thuật tối ưu dựa trên chiến lược chia để trị. Khác với lầm tưởng phổ biến rằng thuật toán này chỉ áp dụng được trên các dãy số có tính đơn điệu (tăng dần hoặc giảm dần), bản chất cốt lõi của tìm kiếm nhị phân nằm ở việc xác định điểm biên của một tính chất cụ ...
Đăng vào ngày 24 tháng 7 lúc 00:04
Tổng hợp luyện tập thi lập trình Robocom: Các năm 2021 và 2024
Vòng sơ khảo 2021 – RoboCom Robot Developer Competition
7-1: Ai cũng hiểu
Dữ liệu vào mẫu:
5 3
4 8 12 20 40
3 11 16 19
3 12 16 19
10 11 11 11 11 11 11 11 11 11 11
Dữ liệu ra mẫu:
Yes
No
Yes
Phân tích:
Vì giới hạn dữ liệu nhỏ, ta dùng vòng lặp bốn tầng O(n⁴) để sinh ra tất cả các tổng có thể của bốn số, sau đó kiểm tra từng truy vấn.
#i ...
Đăng vào ngày 22 tháng 7 lúc 21:36
Các thuật toán tìm kiếm phổ biến trong thư viện STL của C++
Các thuật toán tìm kiếm trong Thư viện Tiêu chuẩn (STL) của C++ cung cấp cơ chế linh hoạt và hiệu quả để duyệt, kiểm tra và đếm phần tử trong các container. Dưới đây là sáu hàm tiêu biểu được thiết kế cho các nhiệm vụ khác nhau — từ tìm kiếm tuyến tính đơn giản đến kiểm tra điều kiện nâng cao và thống kê có lọc.
1. std::find
Tìm kiếm tuần tự m ...
Đăng vào ngày 22 tháng 7 lúc 19:10
Lập trình hướng đối tượng với C++: Khám phá Lớp và Đối tượng
Lập trình hướng đối tượng (OOP) là một phương pháp luận tập trung vào việc tổ chức mã nguồn xung quanh các đối tượng thay vì logic hành động. Ba trụ cột chính của OOP bao gồm: Đóng gói (Encapsulation), Kế thừa (Inheritance) và Đa hình (Polymorphism).
1. Ý nghĩa của tính Đóng gói
Đóng gói là việc kết hợp các thuộc tính (dữ liệu) và hành vi (hàm ...
Đăng vào ngày 20 tháng 7 lúc 21:53
Cơ chế Xây dựng Bản đồ Lưới Xác suất 2D trong Cartographer
Giới thiệu về kiến trúc lưới 2D
Sau khi hoàn tất các bước tiền xử lý điểm mây như đồng bộ thời gian đa cảm biến, bù biến dạng vận động, hiệu chỉnh trọng trường và lọc voxel, dữ liệu lidar đã sẵn sàng cho quy trình khớp quét. Trong không gian 2D, Cartographer không dựa vào các thư viện bản đồ tiêu chuẩn như 3D, mà tự triển khai cơ chế xây dựng l ...
Đăng vào ngày 18 tháng 7 lúc 21:41
Using Mojo IPC in Chromium: A Practical Guide
Mojo is Chromium’s modern inter-process communication (IPC) framework, designed for type safety, performance, and scalability across process boundaries. This guide walks through the essential concepts and patterns required to integrate Mojo interfaces into Chromium’s multi-process architecture.
Core Concepts
A message pipe is a lightweight, b ...
Đăng vào ngày 17 tháng 7 lúc 16:43