Bài toán quy hoạch động hai chiều: Tổng lũy thừa bậc bốn và chuỗi hạt năng lượng
Bài T1 – Tổng lũy thừa bậc bốn tối đaCho dãy gồm n số nguyên dương a[0], a[1], ..., a[n−1]. Bạn được phép chọn một tập con (mỗi phần tử chọn tối đa một lần) sao cho tổng giá trị các phần tử được chọn không vượt quá m. Mục tiêu là cực đại hóa tổng các giá trị a[i]4 của các phần tử đã chọn.
Ràng buộc:
• 1 ≤ n ≤ 4000
• 1 ≤ m ≤ 104
• 1 ≤ a[i] ≤ 10 ...
Đăng vào ngày 22 tháng 8 lúc 05:26
Thao tác với Tệp Cấu hình INI trong C++ qua Windows API
Cấu trúc cơ bản của một tệp INI được tổ chức thành các phần (section), khóa (key) và giá trị (value). Định dạng chuẩn thường thấy như sau:
[Ten_Phan]
Khoa = Gia_Tri
Khoa_2 = Gia_Tri_2
Một tệp INI có thể chứa nhiều phần khác nhau. Để tương tác với tệp cấu hình này trong môi trường Windows, chúng ta sử dụng các hàm API có sẵn.
Các hàm Windows AP ...
Đăng vào ngày 20 tháng 8 lúc 03:29
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