Các bài toán xử lý chuỗi: Đảo ngược, Thay thế và Xoay chuỗi
1. Đảo ngược chuỗi ký tự
Mô tả bài toán: Viết một hàm để đảo ngược một chuỗi ký tự. Chuỗi đầu vào được cho dưới dạng một mảng ký tự `s`. Bạn phải sửa đổi mảng đầu vào tại chỗ, không được cấp phát thêm không gian cho một mảng khác và sử dụng không gian phụ trợ O(1).
Phương pháp giải: Sử dụng kỹ thuật hai con trỏ, một con trỏ bắt đầu từ đầu chuỗi ...
Đăng vào ngày 4 tháng 6 lúc 18:59
Thuật toán Tarjan và Phân tích Tính Liên Thông Trong Đồ Thị
Nền tảng và Khái niệm Cơ bản
Để hiểu sâu về thuật toán Tarjan, chúng ta cần nắm vững cấu trúc của cây tìm kiếm (DFS Tree) trên đồ thị. Cần phân biệt rõ ràng giữa đồ thị gốc và cây sinh ra từ quá trình duyệt DFS.
Hai mảng quan trọng nhất trong quá trình thực thi là:
disc[u]: Lưu trữ thời điểm lần đầu tiên truy cập vào đỉnh u.
low[u]: Giá trị ...
Đăng vào ngày 2 tháng 6 lúc 23:41
Giải bài toán ba lô 0-1 bằng quy hoạch động
Bài toán ba lô 0-1 là một bài toán tối ưu hóa tổ hợp kinh điển. Nó được phát biểu như sau: cho một tập hợp các vật phẩm, mỗi vật phẩm có một trọng lượng và một giá trị nhất định. Với một chiếc ba lô có sức chứa tối đa là W, làm thế nào để chọn ra các vật phẩm sao cho tổng giá trị của chúng là lớn nhất mà không vượt quá sức chứa của ba lô. Tên g ...
Đăng vào ngày 31 tháng 5 lúc 14:33
Cơ sở cấu trúc dữ liệu và thuật toán
Cơ sở cấu trúc dữ liệu và thuật toán
Mục lục- Cơ sở cấu trúc dữ liệu và thuật toán
Khoa học máy tính là gì?
Cách hiểu trực quan về thuật toán và ý nghĩa
Phân tích thuật toán là gì?
Tiêu chí đánh giá chương trình
Độ phức tạp thời gian biểu thức Big O T(n)=O(f(n))
Cấu trúc dữ liệu
Phân tích hiệu năng cấu trúc dữ liệu trong Python
Khoa học máy t ...
Đăng vào ngày 28 tháng 5 lúc 19:33
Ghi Chú Thuật Toán: Các Kỹ Năng Cơ Bản
Duyệt Cây
function duyetTruoc(goc) {
if (goc) {
duyetPath.push(goc.giaTri);
duyetTruoc(goc.trai);
duyetTruoc(goc.phai);
}
}
function duyetGiua(goc) {
if (goc) {
duyetGiua(goc.trai);
duyetPath.push(goc.giaTri);
duyetGiua(goc.phai);
}
}
function duyetSau(goc) {
if (goc) {
...
Đăng vào ngày 27 tháng 5 lúc 04:05
Những Lưu Ý Quan Trọng Khi Lập Trình Thi Đấu
Tóm tắt
Luôn kiểm tra kích thước mảng sau khi viết xong bài. Nên khai báo lớn hơn 2-4 lần so với giới hạn đề bài. Đặc biệt chú ý khi có nhiều biến như N, M, K...
Phải đọc kỹ đề bài. Dữ liệu kiểm thử có thể có nhiều dạng khác nhau. Nếu đề không nói rõ không có cạnh song song hoặc tự vòng, hãy tự xử lý.
Xác định rõ dữ liệu đầu vào và ...
Đăng vào ngày 26 tháng 5 lúc 09:28
[NOI Online #1 - Vòng Nâng Cao]
A
Đầu tiên, hãy xem xét trường hợp đặc biệt khi \(t = 2\).
Không khó nhận thấy thao tác này khá không trực quan, vì vậy có thể xem xét việc nối một cạnh vô hướng giữa mỗi cặp đỉnh \(u, v\) trong thao tác \((u, v)\).
Rõ ràng các thành phần liên thông cần được xem xét riêng biệt. Với cùng một thành phần liên thông, tổng giá trị của các đỉnh trong ...
Đăng vào ngày 24 tháng 5 lúc 03:39
Giải đề thi AtCoder Beginner Contest 377
Bài A - Kiểm tra chuỗi ABC
Cho chuỗi 3 ký tự, xác định xem chuỗi đó có chứa đủ 3 ký tự A, B, C hay không.
Giải pháp: Đếm tần suất xuất hiện từng ký tự bằng mảng đếm.
Xem mã nguồn
#include<bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;
sort(s.begin(), s.end());
cout > c;
if (c == '#') {
...
Đăng vào ngày 21 tháng 5 lúc 21:00
Ghi chép giải bài thi NOI 2025 (Phần 3)
Giải các bài tập luyện tập (Phần 15)
\(\text{Bởi DaiRuichen007}\)
Vòng #69 - 20250409
A. [QOJ5091] Bài toán mùa đông
Liên kết đề bài
Tóm tắt đề bài
Cho \(n,k\), với \(n\) là số chẵn, cho \(l_1\sim l_k,r_1\sim r_k\), trong đó \(l_i=n-2i+1,r_i=n+2i-1\), tìm một bộ ghép hoàn hảo \(p\) sao cho số cặp \((l_i,r_{p_i})\) nguyên tố cùng nhau là nhiều ...
Đăng vào ngày 20 tháng 5 lúc 10:24
Hệ thống kiến thức C++
C++ là một ngôn ngữ lập trình mạnh mẽ và linh hoạt, được sử dụng rộng rãi trong phát triển phần mềm hệ thống, game, ứng dụng hiệu năng cao và nhiều lĩnh vực khác. Để nắm vững C++, việc xây dựng một hệ thống kiến thức bài bản là vô cùng quan trọng. Bài viết này sẽ phác thảo một lộ trình học tập toàn diện, bao gồm các khía cạnh từ cơ bản đến n ...
Đăng vào ngày 20 tháng 5 lúc 04:25