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

Tìm Tổ Tiên Chung Gần Nhất bằng Thuật Toán Tarjan

Đề bàiCho một cây có gốc và đa nhánh, yêu cầu xác định tổ tiên chung gần nhất (LCA) của hai nút được chỉ định trong mỗi truy vấn.Dữ liệu nhậpDòng đầu tiên chứa ba số nguyên dương N, M, S lần lượt là số nút, số truy vấn và nút gốc.Tiếp theo N-1 dòng, mỗi dòng gồm hai số nguyên x, y biểu thị cạnh nối giữa hai nút.M dòng tiếp theo, mỗi dòng gồm ha ...

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

Xác Suất Tồn Tại Của Mã Tế Sau K Bước Di Chuyển Trên Bàn Cờ

Bài toán: 688. Xác suất tồn tại của mã tế trên bàn cờ Cách tiếp cận: Có tối đa k * n * n trạng thái, đáp ứng yêu cầu về thời gian. Phương pháp 1: Đệ quy + Tìm kiếm theo chiều sâu (DFS). Độ phức tạp thời gian là O(k * n²), chi tiết xem trong chú thích. Phiên bản C++: class Solution { public: // tám hướng di chuyển int huongDiChuyenX[8]={ ...

Đăng vào ngày 5 tháng 6 lúc 23:10

Xử Lý Bài Toán Kiểm Tra Chuỗi và Quản Lý Hàng Đợi

A Đề bài yêu cầu xác định hai chuỗi có phải là "AtCoder" và "Land" hay không, phân biệt chữ hoa chữ thường. <?cpp #include <iostream> using namespace std; string str1, str2; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> str1 >> str2; if (str1 == "AtCoder" && str2 == "Land") cout N >> A; ...

Đăng vào ngày 5 tháng 6 lúc 19:54

Bài tập thi Lan Qiao Cup C/C++ Nhóm A năm 2024

Bài tập A: Nghệ Thuật và Bóng Rổ Mã nguồn giải: #include <bits/stdc++.h> using namespace std; int diem[10] = {13, 1, 2, 3, 5, 4, 4, 2, 2, 2}; bool laNamNhuan(int nam) { return (nam % 400 == 0) || (nam % 4 == 0 && nam % 100 != 0); } int ngayLonNhat(int nam, int thang) { if (thang == 1 || thang == 3 || thang == 5 || thang == 7 | ...

Đăng vào ngày 2 tháng 6 lúc 03:15