Phân tích giải thuật trong kỳ thi NHSPC 2023
B. Mô phỏng trí tuệ nhân tạo
Giải pháp đơn giản sử dụng phương pháp duyệt toàn bộ.
G. Bảo tàng
Chọn k hiện vật có giá trị lớn nhất, ưu tiên vị trí bên trái khi giá trị bằng nhau. Di chuyển tối ưu theo thứ tự từ trái sang phải.
H. Phân tách số nguyên bằng dãy palindrome
Đặt $D_n$ là số cách phân tách. Dãy palindrome có tính chất đệ quy: loại b ...
Đăng vào ngày 1 tháng 8 lúc 22:28
Giải bài toán Lục Cốc 2024 Quốc Gia A: Xoay Lưới 3x3 Bằng BFS
Bài toán Xoay Lưới 3x3 từ Lục Cốc 2024 Quốc Gia A
Đây là giải pháp cho bài toán P10578 từ kỳ thi Lục Cốc 2024 Quốc Gia A.
Mô tả bài toán
Cho một lưới 3x3 (cửu cung), mỗi ô chứa một số khác nhau. Ở mỗi bước, chúng ta có thể chọn một khu vực 2x2 bất kỳ và xoay nó theo chiều kim đồng hồ. Ví dụ:
1 2 3
4 5 6
7 8 9
Xoay vùng góc trên bên phải ...
Đăng vào ngày 15 tháng 7 lúc 14:48
Giải quyết các bài toán đồ thị và luồng trên mạng phổ biến
Bài toán cứu hộ trên đảo hoang (P4011)
Bài toán yêu cầu tìm bước đi ngắn nhất từ ô (1,1) đến ô (n,m) trong một mê cung kích thước $n \times m$. Mê cung này không chỉ có các bức tường ngăn cách mà còn có các cánh cửa khóa và chìa khóa tương ứng. Để đi qua một cánh cửa, người chơi phải sở hữu loại chìa khóa phù hợp.
Phân tích thuật toán
Với yêu ...
Đăng vào ngày 14 tháng 7 lúc 13:49
Giải bài toán 2019 Zheng Rui Luyện tập cấp độ phổ thông (3) - T4: Trái Đất Lang Thang
Trái Đất Lang Thang
Mô tả bài toán
Mặt trời già hóa nhanh chóng, để tồn tại, nhân loại đã khởi động kế hoạch di tản quy mô lớn mang tên "Trái Đất Lang Thang". Khi kế hoạch bắt đầu, nhân loại phải trả giá đắt. Sự khởi động của động cơ hành tinh khiến Trái Đất ngừng quay, gây ra sóng thần khổng lồ. Để cứu sống nhiều người nhất, chính ph ...
Đăng vào ngày 2 tháng 7 lúc 05:23
Bài toán về cấu trúc cây và giải thuật
P2015 Cây nhị phân táo
(f_{u,i}) thể hiện giá trị lớn nhất khi giữ lại i cạnh trong cây con gốc tại u.
(f_{u,i}=max{f_{v,j}+f{u,i-j-1}+w})
#include<cmath>
#include<queue>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define maxn 210
#define maxm 300000
#def ...
Đăng vào ngày 28 tháng 6 lúc 22:47
Các bài toán tháng 3
Hiện tại vẫn đang tập luyện ARC và CF.
ARC075E
Câu hỏi là tính số lượng khoảng区间的 trung bình lớn hơn hoặc bằng \(k\). Chúng ta có thể biến mỗi số thành tổng của nó và \(k \times độ dài\) của khoảng, sau đó排序. Nếu một phần tử trong danh sách sắp xếp trước vẫn nằm ở vị trí trước một phần tử khác trong danh sách đã sắp xếp, thì khoảng trung b ...
Đăng vào ngày 24 tháng 6 lúc 20:41
Ứ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
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 thuật và Cài đặt Các Bài Toán Từ Cuộc Thi Lập Trình AtCoder ABC299
Bài A – Hộp Bảo Bối
Xuất phát từ một chuỗi ký tự gồm ba ký hiệu đặc biệt: '|' (hai dấu gạch đứng biểu thị hai cạnh của hộp) và '*' (một ngôi sao đại diện cho vật phẩm). Nhiệm vụ là xác định xem ngôi sao nằm bên trong hay bên ngoài hộp — tức là có nằm giữa hai dấu gạch hay không.
Cách tiếp cận đơn giản: duyệt chuỗi để ghi nhận vị trí đầu tiên và ...
Đăng vào ngày 4 tháng 6 lúc 06:28
Giải Thuật Tìm Kiếm: Phân Tích Bài Toán Từ Cơ Bản Đến Nâng Cao
Bài toán Badge (A)
Với ràng buộc n \leq 1000, ta có thể áp dụng tìm kiếm chiều sâu (DFS) kết hợp mảng đánh dấu. Ý tưởng chính: với mỗi đỉnh xuất phát, duyệt theo liên kết cho đến khi gặp đỉnh đã thăm trước đó.
#include <iostream>
#include <vector>
using namespace std;
const int MAX = 1005;
int n, ket_qua, lien_ket[MAX];
bool da_tha ...
Đăng vào ngày 3 tháng 6 lúc 20:15