Kỳ thi Lập trình Viên Mới ABC394: Phân tích Bài Giải
Bài A: Lọc Ký Tự 2
Yêu cầu: Cho chuỗi ký tự đầu vào, in ra chuỗi chỉ chứa các ký tự số 2
Giải pháp:
Xem mã nguồn
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
cin >> str;
string result;
for(char c : str) {
if(c == '2') result += c;
}
cout << result;
...
Đăng vào ngày 20 tháng 5 lúc 17:03
Giới thiệu về cây Chủ tịch (Chairman Tree)
Tôi ghét các cấu trúc dữ liệu khó hiểu! Huhu.
Giới thiệu vấn đề
Cho một dãy số nguyên dương có độ dài \(n\), thực hiện \(q\) truy vấn, mỗi truy vấn yêu cầu tìm giá trị của phần tử nhỏ thứ \(k\) trong đoạn \([l,r]\) của dãy.
Nếu \(n,q \le 10^3\), đây chỉ là bài toán đơn giản cần duyệt toàn bộ; nhưng khi \(n,q \le 10^5\), phương pháp duyệt sẽ khô ...
Đăng vào ngày 19 tháng 5 lúc 23:26
Giải quyết các bài toán thuật toán phổ biến bằng kỹ thuật Hai con trỏ
Kỹ thuật hai con trỏ (Two-Pointer) là một trong những phương pháp tối ưu nhất để xử lý các bài toán trên mảng hoặc chuỗi. Thay vì sử dụng các vòng lặp lồng nhau gây tốn kém về thời gian (O(n²)), hai con trỏ giúp đưa độ phức tạp về O(n). Dưới đây là cách áp dụng kỹ thuật này vào các bài toán thực tế.
1. Loại bỏ phần tử (LeetCode 27)
Bài toán yê ...
Đăng vào ngày 18 tháng 5 lúc 04:51