Giải mã các bài toán Codeforces từ A đến H
Mức độ khó: Đỏ, Cam, Vàng, Xanh lá, Xanh dương, Tím, Đen, Đen
Bài A
Cho hai số nguyên a và b, giải bất phương trình b - 2x ≤ a - x với điều kiện 0 ≤ x ≤ a. Yêu cầu in ra giá trị nhỏ nhất của a - x.
Sau khi biến đổi, ta có x ≥ b - a. Từ đó, ta xét các trường hợp để tìm nghiệm tối ưu.
#include <cstdio>
using namespace std;
int main() {
...
Đăng vào ngày 9 tháng 6 lúc 17:22
Giải pháp cho Vòng 6 Cuộc thi Đa trường HDU 2023
Giải pháp cho Vòng 6 Cuộc thi Đa trường HDU 2023
A. Đếm
Liên kết đề bài
Tóm tắt đề bài
Đếm số lượng chuỗi có độ dài \(n\), bảng ký tự kích thước \(m\) có chu kỳ độ dài \(n-k\).
Phạm dữ liệu: \(n,m,k\le 10^{18}\).
Phân tích giải pháp
Khi \(k=n\) đáp án là \(m^n\), ngược lại chuyển sang có Border độ dài \(k\), đáp án là \(m^{n-k}\).
Độ phức tạp ...
Đăng vào ngày 5 tháng 6 lúc 19:50
Xóa một nút khỏi Cây Tìm kiếm Nhị phân
Các đặc tính của Cây Tìm kiếm Nhị phân
Có ba đặc tính quan trọng của Cây Tìm kiếm Nhị phân (BST) mà bạn nên nắm vững:
1. Duyệt trung thứ tự (In-order traversal) tạo ra một dãy số đã sắp xếp. Thứ tự duyệt: `Con trái -> Nút gốc -> Con phải`.
public LinkedList<Integer> duyetTrungThuTu(TreeNode node, LinkedList<Integer> danhSac ...
Đăng vào ngày 4 tháng 6 lúc 19:40
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
Hướng dẫn các thuật toán STL trong C++
1. Các thuật toán không thay đổi chuỗi
Các thuật toán này không làm thay đổi các phần tử trong container mà chúng thao tác.
1.1 find và find_if
find(begin, end, value): Tìm phần tử đầu tiên bằng với value, trả về iterator (trả về end nếu không tìm thấy).
find_if(begin, end, predicate): Tìm phần tử đầu tiên thỏa mãn một điều kiện nhất định (pr ...
Đăng vào ngày 3 tháng 6 lúc 21:13
Mô hình học ít mẫu mới: Tối ưu hóa giải thuật LeetCode
Dự án LeetCode87: Học thuật toán hiệu quả qua ít mẫu
Dự án LeetCode87 là một kho giải pháp thuật toán đa ngôn ngữ, bao gồm các bài toán từ LeetCode, "Kiến thức Cơ bản Lập trình" (剑指 Offer) và "Cẩm nang Phỏng vấn Lập trình viên" (The Art of Programming). Cấu trúc dự án được tổ chức rõ ràng theo loại bài toán và độ khó, giúp người học tiếp cận ...
Đăng vào ngày 3 tháng 6 lúc 04:28
Triển khai Tìm kiếm Nhị phân và Ứng dụng trong Thư viện STL Tiêu chuẩn
Trong các bài toán lập trình, thao tác tìm kiếm xuất hiện thường xuyên. Nếu sử dụng phương pháp tìm kiếm lực lượng (brute-force) với lượng dữ liệu lớn, chương trình sẽ gặp vấn đề về thời gian thực thi (ví dụ: với quy mô (10^5) thì độ phức tạp (O(n^2)) thường vượt quá thời gian cho phép, trong khi (O(nlogn)) thường chấp nhận được). Vì vậy, tìm k ...
Đăng vào ngày 1 tháng 6 lúc 23:28
Tổng hợp thuật toán STL C++ (Phần 1)
1. Thuật toán không thay đổi dãy
Các thuật toán này không làm thay đổi các phần tử trong container mà chúng thao tác.
1.1 find và find_if
find(begin, end, value): Tìm phần tử đầu tiên bằng value, trả về iterator (trả về
end nếu không tìm thấy).
find_if(begin, end, predicate): Tìm phần tử đầu tiên thỏa mãn predicate.
find_end(begin, end, sub ...
Đăng vào ngày 1 tháng 6 lúc 22:58
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
Bài thực hành số 3
Hoạt động 1:
1 #include <stdio.h>
2
3 char convert_score_to_grade(int point);
4
5 int main() {
6 int point;
7 char level;
8 while(scanf("%d", &point) != EOF) {
9 level = convert_score_to_grade(point);
10 printf("Điểm: %d, Xếp loại: %c\n\n", point, level);
11 }
12 ret ...
Đăng vào ngày 30 tháng 5 lúc 11:12