Ôn tập thi thử 20260418: Tổng hợp các bài toán và lời giải

A - Đổi mật khẩu Bài toán cơ bản, chỉ cần thống kê và mô phỏng là ra. Chi tiết không cần bàn thêm. #include <bits/stdc++.h> using namespace std; int T, n, a, b, c, A, B, C; string s; int main() { cin >> T; while (T--) { cin >> s; n = s.size(); s = " " + s; a = b = c = A = B = C = 0; for ...

Đăng vào ngày 25 tháng 6 lúc 01:04

Các Khái Niệm Cơ Bản Về Đồ Thị và Tìm Kiếm Theo Chiều Sâu

Lý Thuyết Đồ Thị Phân Loại Đồ Thị Đồ thị vô hướng: Cạnh không có hướng xác định Đồ thị có hướng: Cạnh xác định chiều đi giữa các đỉnh Đồ thị có trọng số: Cạnh mang giá trị trọng lượng Bậc Đỉnh Vô hướng: Số cạnh nối với đỉnh Có hướng: Bao gồm bậc vào (số cạnh hướng tới) và bậc ra (số cạnh đi ra) Tính Liên Thông Đồ thị liên thô ...

Đăng vào ngày 24 tháng 6 lúc 04:20

Luyện Tập Cơ Bản Thuật Toán Mùa Đông NowCoder 1

Luyện Tập Mùa Đông NowCoder - Phần 1 Dễ A-Tìm Kiếm DFS #include <bits/stdc++.h> using namespace std; const int N = 1e6 + 10; #define int long long void giai() { int n; cin >> n; string s; cin >> s; map<char, bool> mapD, mapDCap; bool coD = false, coDCap = false; for(int i = 0; ...

Đăng vào ngày 23 tháng 6 lúc 01:44

Ứng dụng của đồ thị – Đồ thị liên thông

Input 2 4 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 7 0 1 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 Output Yes No Bài toán này yêu cầu kiểm tra xem một đồ thị có hướng có phải là đồ thị liên thông không. Để làm điều này, chúng ta có thể sử dụng thuật toán DFS hoặc BFS. Trong ví dụ này, tôi ...

Đăng vào ngày 23 tháng 6 lúc 00:53

Giải pháp lập trình cho các bài toán về Tổ hợp, Chuỗi, Quy hoạch động và Số học

A. Mua Vé Số (Buy Lottery Tickets) Bài toán yêu cầu liệt kê tất cả các tổ hợp 6 số từ một danh sách các số nguyên đầu vào, với điều kiện là các số được chọn phải thỏa mãn tính chất tăng dần. Vì giới hạn của dữ liệu không quá lớn, chúng ta có thể sử dụng thuật toán tìm kiếm theo chiều sâu (DFS) kết hợp với kỹ thuật quay lui (backtracking) để giả ...

Đăng vào ngày 22 tháng 6 lúc 18:06

Các Thuật Toán Duyệt và Xử Lý Cây Nhị Phân

Duyệt Tiền Thứ Tự class GiảiPháp { void duyetTruoc(Đỉnh gốc, List<Integer> kq) { if (gốc == null) return; kq.add(gốc.val); duyetTruoc(gốc.trái, kq); duyetTruoc(gốc.phải, kq); } public List<Integer> duyetTienTu(Đỉnh gốc) { List<Integer> kq = new ArrayList(); duyet ...

Đăng vào ngày 19 tháng 6 lúc 02:03

Giải bài tập thi lập trình

Bài A: Chọn số may mắn Áp dụng thuật toán tìm kiếm theo chiều sâu (DFS) để sinh các tổ hợp số thỏa mãn điều kiện. Điểm chú ý là cần thêm lệnh return khi kết thúc quá trình đệ quy: #include <bits/stdc++.h> using namespace std; int numbers[100], selected[10], visited[100]; int total; void generate(int depth) { if (depth > 6) { ...

Đăng vào ngày 15 tháng 6 lúc 00:52

Giải các bài toán từ kỳ thi ABC358

Bài A Đọc hai chuỗi s và t. Nếu s là "AtCoder" và t là "Land", in ra "Yes", ngược lại in "No". Xem mã nguồn #include <bits/stdc++.h> using namespace std; int main() { string x, y; cin >> x >> y; if (x == "AtCoder" && y == "Land") cout n >> duration; vector<int> ready(n); for (int i = 0; i < n; ++i) ...

Đăng vào ngày 13 tháng 6 lúc 16:00

Phân phối Kẹo, Tách Từ II, Điểm Tối Đa Trên Một Đường Thẳng

Bài viết này trình bày các giải pháp cho ba bài toán LeetCode: 135. Phân phối Kẹo, 140. Tách Từ II và 149. Điểm Tối Đa Trên Một Đường Thẳng. 135. Phân phối Kẹo Bài toán yêu cầu phân phối kẹo cho các trẻ em dựa trên xếp hạng của họ sao cho mỗi trẻ em nhận được ít nhất một viên kẹo và trẻ em có xếp hạng cao hơn phải nhận được nhiều kẹo hơn trẻ e ...

Đăng vào ngày 13 tháng 6 lúc 05:09

Kiểm tra Thủ khoa AtCoder 396

A - Ba Số Bốn Tác giả yêu cầu kiểm tra xem trong dãy số có tồn tại ít nhất một bộ ba số liên tiếp bằng nhau hay không. Giải pháp: Duyệt qua từng bộ ba số liên tiếp trong mảng và so sánh chúng. Mã nguồn: #include <iostream> #include <vector> using namespace std; void kiemtraBaSoTuongDong(){ int n; cin >> n; vector ...

Đăng vào ngày 12 tháng 6 lúc 23:51