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