Tóm tắt cuộc thi AtCoder Beginner 335
Các bài tập ABC335
A. Chuyển đổi chuỗi
Đề bài
Cho một chuỗi ký tự \(S\) gồm các chữ cái thường và số.
\(S\) chắc chắn kết thúc bằng 2023.
Thay đổi ký tự cuối cùng của \(S\) thành 4, sau đó in chuỗi đã chỉnh sửa.
Giải pháp
Có hai cách tiếp cận:
Thay thế ký tự cuối cùng bằng 4 và in ra.
In \(n-1\) ký tự đầu tiên sau đó thêm 4.
Mã nguồn
#include ...
Đăng vào ngày 27 tháng 6 lúc 14:32
Thực Hành Các Thuật Toán Căn Bản với Ngôn Ngữ C
Bài viết này khám phá một loạt các bài tập lập trình cơ bản bằng ngôn ngữ C, bao gồm các thuật toán xử lý dữ liệu số, tính toán số học, và các kỹ thuật lập trình đệ quy. Mỗi phần trình bày một vấn đề, giải pháp bằng mã C, và phân tích các khía cạnh quan trọng của việc triển khai.
Bài tập 1: Chuyển đổi điểm số thành xếp loại
Chức năng chính là ...
Đăng vào ngày 26 tháng 6 lúc 18:58
Khai thác thư viện thuật toán STL trong lập trình C++ hiện đại
1. Các thuật toán không làm thay đổi dữ liệu (Non-modifying)
Nhóm thuật toán này thực hiện việc đọc hoặc kiểm tra các phần tử trong container mà không làm biến đổi giá trị của chúng.
1.1. Truy vấn vị trí với find, find_if và find_end
find: Trả về iterator đến phần tử đầu tiên khớp với giá trị cần tìm.
find_if: Tìm kiếm dựa trên một đi ...
Đăng vào ngày 18 tháng 6 lúc 05:32
Các cấu trúc dữ liệu cơ bản
Các cấu trúc dữ liệu cơ bản
Mục lục- Cấu trúc dữ liệu cơ bản
Ngăn xếp (stack)
Hàng đợi (queue)
Hàng đợi hai đầu (deque)
Mảng tuần tự và bộ nhớ
Tìm hiểu sơ lược về bộ nhớ
Mảng tuần tự
Hạn chế của mảng tuần tự: cần biết trước kích thước dữ liệu để cấp phát không gian lưu trữ liên tục, và khi mở rộng phải di chuyển dữ liệu.
Danh sách liên kết (Li ...
Đăng vào ngày 17 tháng 6 lúc 16:07
Giải quyết các bài toán trong AtCoder Beginner Contest 386
A - Full House 2
Yêu cầu
Cho 4 số nguyên, hỏi có thể thêm một số nguyên để có đúng 3 số a và 2 số b không?
Cách giải
Sử dụng mô phỏng
Mã nguồn
Xem mã nguồn
#include <bits/stdc++.h>
using namespace std;
void solve() {
int A, B, C, D;
cin >> A >> B >> C >> D;
map<int, int> m;
m[A]++;
m[ ...
Đăng vào ngày 16 tháng 6 lúc 18:47
Thực hành C++ Hiện đại: Làm Quen với Thư viện Chuẩn và Các Thuật toán STL
Các bài tập sau đây minh họa việc sử dụng hiệu quả các thành phần thiết yếu của thư viện chuẩn C++ (STL), bao gồm std::vector, std::string, thuật toán như std::reverse, std::rotate, std::transform, std::generate, cũng như các hàm xử lý chuỗi và số học.
Bài 1: Thao tác chuỗi và mảng động với thuật toán đảo ngược và xoay vòng
Dưới đây là phiên b ...
Đăng vào ngày 16 tháng 6 lúc 07:34
Nghiên cứu về các thao tác cơ bản của cấu trúc dữ liệu Stack và Queue
Nghiên cứu về các thao tác cơ bản của cấu trúc dữ liệu Stack và Queue
Bài viết này tập trung vào việc khám phá và củng cố các phương pháp thao tác thường gặp với hai cấu trúc dữ liệu cơ bản: Stack (ngăn xếp) và Queue (hàng đợi). Chúng ta sẽ cùng nhau phân tích một số bài toán điển hình để hiểu rõ hơn cách áp dụng chúng trong thực tế.
Stack (Ng ...
Đăng vào ngày 15 tháng 6 lúc 21:37
Giải Quyết Các Bài Tập Trong Educational Codeforces Round 186 (CF2182)
A. Chuỗi Năm Mới
Đầu tiên, duyệt qua toàn bộ chuỗi để đếm số lần xuất hiện của "2025" và "2026". Nếu số lần xuất hiện của "2025" là 0 hoặc số lần xuất hiện của "2026" không phải là 0, thì không cần thay đổi gì. Ngược lại, nếu có ít nhất một "2025", ta sẽ thay đổi chữ số '5' cuối cùng thành '6'. ...
Đăng vào ngày 13 tháng 6 lúc 17:50
Giải thích: AtCoder Beginner Contest 189
C - Quả Cam Mandarina
Đề xuất một phương pháp khác với độ phức tạp \(\mathcal{O}(n \log n)\).
Đặt cho vị trí thứ \(i\), vị trí đầu tiên bên trái lớn hơn nó là \(L_i\), và vị trí đầu tiên bên phải lớn hơn nó là \(R_i\).
Ta nhận thấy rằng giá trị tối ưu cho vị trí \(i\) khi làm \(x\) chính là \((R_i-L_i-1)\times val_i\).
Có thể sử dụng danh sách ...
Đăng vào ngày 12 tháng 6 lúc 09:28
Các giải thuật tối ưu cho bộ bài toán cạnh tranh lập trình 2026
A. Tối ưu hóa đường đi trên lưới và cây Cartesian
Vì kích thước lưới quá lớn, ta chỉ tập trung vào các điểm biên dạng (0, y). Đường đi được chia nhỏ thành các đoạn dựa trên vị trí cắt qua cột này. Đặt w[y] là độ dài tiền tố liên thông cực đại ở hàng thứ y. Hai điểm (0, u) và (0, v) (với u < v) có thể kết nối trực tiếp khi và chỉ khi tồn tại ...
Đăng vào ngày 12 tháng 6 lúc 02:41