So sánh C++ và Python: Khái niệm con trỏ và tham chiếu

Khái niệm con trỏ trong lập trình Con trỏ là một thành phần cốt lõi trong các ngôn ngữ như C, C++, Java và Go. Về bản chất, nó mang hai ý nghĩa chính: Một kiểu dữ liệu biểu thị địa chỉ bộ nhớ (ví dụ: con trỏ int, con trỏ đến con trỏ). Một biến lưu trữ địa chỉ của một đối tượng trong bộ nhớ. Giữa hai khái niệm này có mối liên hệ chặt chẽ: ...

Đăng vào ngày 8 tháng 9 lúc 13:51

Hướng dẫn giải ABC420 (A–E)

Bài A Đề bài: sau y tháng tính từ tháng x thì đang ở tháng mấy. Đây chỉ là một phép toán chia lấy dư đơn giản. void solve() { int currentMonth, delta; cin >> currentMonth >> delta; cout << (currentMonth - 1 + delta) % 12 + 1 << "\n"; } Bài B Yêu cầu tìm số hiệu của người chơi có tổng điểm cao nhất. Ta mô ph ...

Đăng vào ngày 6 tháng 9 lúc 13:49

Hàm hủy trong C++

Hàm hủy (Destructor) là một hàm đặc biệt được gọi tự động khi đối tượng bị xóa khỏi bộ nhớ. Nó đóng vai trò như lời cuối cùng của một đối tượng trước khi biến mất, giúp giải phóng các tài nguyên mà đối tượng đã chiếm dụng — chẳng hạn như bộ nhớ động, file mở, hoặc kết nối mạng. Đặc điểm chính: Không có tham số và không trả về giá trị. Tên hàm ...

Đăng vào ngày 4 tháng 9 lúc 07:18

Phân tích và tối ưu bài toán đếm số lượng cách đảo chuỗi con tạo ra số nhỏ hơn

Mô tả bài toán Cho một chuỗi ký tự số có độ dài n, chỉ bao gồm các chữ số từ 0 đến 9. Chuỗi này có thể được xem như một số thập phân có n chữ số. Nhiệm vụ là chọn ra một chuỗi con liên tục và đảo ngược nó (thực hiện tối đa một lần). Sau khi đảo ngược và đặt lại vào vị trí cũ, ta thu được một số mới. Yêu cầu đặt ra là đếm số lượng cách chọn chuỗ ...

Đăng vào ngày 3 tháng 9 lúc 12:48

Giải bài tập Codeforces Round 950 (Div. 3)

Chào buổi sáng! (00:50:13) Đây là lần thi khá thuận lợi: giải được tổng cộng 6 bài toán. A. Tạo Dữ Liệu Thử Sử dụng cấu trúc ánh xạ để đếm tần suất ký tự. #include<bits/stdc++.h> using namespace std; const int MAX_SIZE = 2e5+10; int test_cases, n, m; char input_array[MAX_SIZE]; unordered_map<char, int> frequency; int main() { ci ...

Đăng vào ngày 3 tháng 9 lúc 11:58

Sao Chép Đối Tượng Trong C++: Copy Constructor Toàn Tập

Copy Constructor Trong C++ Copy constructor là một trong những khái niệm cốt lõi trong lập trình C++ hướng đối tượng. Bài viết này sẽ giúp bạn hiểu rõ cơ chế hoạt động cũng như các tình huống mà copy constructor được gọi. Khi Nào Copy Constructor Được Kích Hoạt? Có ba trường hợp chính khiến copy constructor được gọi tự động: Khởi tạo đối tượng ...

Đăng vào ngày 29 tháng 8 lúc 04:02

C++ Thư Viện cxxopts: Phân Tích Tham Số Dòng Lệnh Cách Hiện Đại

Giới Thiệu Về cxxopts Trong Lập Trình Dòng Lệnh C++ Việc xử lý tham số dòng lệnh trong C++ truyền thống thường đòi hỏi lập trình viên phải tự phân tích các đối số từ argc và argv, cùng với việc kiểm tra lỗi và chuyển đổi kiểu dữ liệu thủ công. Quá trình này dễ phát sinh mã trùng lặp và khó bảo trì, đặc biệt với các ứng dụng có nhiều tùy chọn ph ...

Đăng vào ngày 25 tháng 8 lúc 01:13

Đếm số lượng dãy con tăng dần dài nhất trong mảng (C++/Java)

Cho một mảng các số nguyên không sắp xếp, hãy tìm số lượng dãy con tăng dần dài nhất. Ví dụ 1: Input: [1,3,5,4,7] Output: 2 Giải thích: Hai dãy con tăng dần dài nhất là [1, 3, 4, 7] và [1, 3, 5, 7]. Ví dụ 2: Input: [2,2,2,2,2] Output: 5 Giải thích: Dãy con tăng dần dài nhất có độ dài 1, và có 5 phần tử như vậy, nên kết quả là 5. Phân tí ...

Đăng vào ngày 23 tháng 8 lúc 22:52

Sử dụng cấu trúc đống (Heap) trong lập trình

Cấu trúc dữ liệu Heap có nhiều ứng dụng quan trọng trong các thuật toán. Dưới đây là cách sử dụng Heap để sắp xếp mảng và giải quyết vấn đề Top-K. Thuật toán sắp xếp Heap Để xây dựng một Heap từ mảng, chúng ta cần điều chỉnh các phần tử sao cho thỏa mãn tính chất của Heap. Ví dụ với mảng sau: int mang[] = {4, 2, 8, 1, 5, 6, 9, 7, 3}; Chúng t ...

Đăng vào ngày 22 tháng 8 lúc 21:05

Thuật toán tham lam giải bài toán phủ đoạn thời gian

Mô tả bài toán Cho một khoảng thời gian tổng thể bắt đầu từ 1 đến $T$. Có $N$ nhân sự có thể được điều phối, trong đó mỗi nhân sự $i$ chỉ sẵn sàng làm việc trong một khoảng thời gian cố định $[S_i, E_i]$. Yêu cầu đặt ra là cần chọn ra số lượng nhân sự ít nhất sao cho tại mọi thời điểm $t \in [1, T]$, luôn có ít nhất một người đang làm việc. Kết ...

Đăng vào ngày 17 tháng 8 lúc 05:39