Ghi Chú Thuật Toán: Các Kỹ Năng Cơ Bản
Duyệt Cây
function duyetTruoc(goc) {
if (goc) {
duyetPath.push(goc.giaTri);
duyetTruoc(goc.trai);
duyetTruoc(goc.phai);
}
}
function duyetGiua(goc) {
if (goc) {
duyetGiua(goc.trai);
duyetPath.push(goc.giaTri);
duyetGiua(goc.phai);
}
}
function duyetSau(goc) {
if (goc) {
...
Đăng vào ngày 27 tháng 5 lúc 04:05
Giải pháp Tối ưu Hệ số Độ dốc cho Thuật toán Quy hoạch Động
Giải thuật Chi tiết
Ví dụ Đầu vào
Chúng ta hãy xem một bài toán: Đóng gói đồ chơi.
Có \(n\) món đồ chơi, món đồ chơi thứ \(i\) có chiều dài \(c_i\). Yêu cầu xếp \(n\) món đồ chơi này theo thứ tự thành một hàng và chia thành một số đoạn. Chi phí của một đoạn \([l,r]\) là \((r-l+\sum_{i=l}^{r} c_i-L)^2\), hãy tìm cách chia đoạn có tổng chi phí n ...
Đăng vào ngày 27 tháng 5 lúc 02:27
Những Lưu Ý Quan Trọng Khi Lập Trình Thi Đấu
Tóm tắt
Luôn kiểm tra kích thước mảng sau khi viết xong bài. Nên khai báo lớn hơn 2-4 lần so với giới hạn đề bài. Đặc biệt chú ý khi có nhiều biến như N, M, K...
Phải đọc kỹ đề bài. Dữ liệu kiểm thử có thể có nhiều dạng khác nhau. Nếu đề không nói rõ không có cạnh song song hoặc tự vòng, hãy tự xử lý.
Xác định rõ dữ liệu đầu vào và ...
Đăng vào ngày 26 tháng 5 lúc 09:28
Tìm Chỉ Số Cân Bằng Trong Mảng
Dưới đây là một bài toán kiểm tra lập trình đơn giản với logic không quá phức tạp:
Một mảng A chỉ số bắt đầu từ 0 gồm N số nguyên được cho. Một chỉ số cân bằng của mảng này là bất kỳ số nguyên P sao cho 0 ≤ P < N và tổng các phần tử có chỉ số nhỏ hơn bằng tổng các phần tử có chỉ số lớn hơn, tức là:
A[0] + A[1] + ... + A[P−1] = A[P+1] + ... ...
Đăng vào ngày 23 tháng 5 lúc 06:45
Sử dụng hàng đợi ưu tiên để giải quyết hai bài toán trên Luogu
Luogu P1631: Gộp hai dãy số
Bài toán yêu cầu tìm N giá trị nhỏ nhất từ tất cả các tổng có thể tạo ra bằng cách lấy một phần tử từ dãy A và một phần tử từ dãy B. Cả hai dãy A và B đều có độ dài N và đã được sắp xếp tăng dần.
Phương pháp đơn giản nhất là tính tất cả N² tổng và sau đó sắp xếp chúng, nhưng cách này sẽ quá chậm. Chúng ta cần một gi ...
Đăng vào ngày 21 tháng 5 lúc 03:54
Ghi chép giải bài thi NOI 2025 (Phần 3)
Giải các bài tập luyện tập (Phần 15)
\(\text{Bởi DaiRuichen007}\)
Vòng #69 - 20250409
A. [QOJ5091] Bài toán mùa đông
Liên kết đề bài
Tóm tắt đề bài
Cho \(n,k\), với \(n\) là số chẵn, cho \(l_1\sim l_k,r_1\sim r_k\), trong đó \(l_i=n-2i+1,r_i=n+2i-1\), tìm một bộ ghép hoàn hảo \(p\) sao cho số cặp \((l_i,r_{p_i})\) nguyên tố cùng nhau là nhiều ...
Đăng vào ngày 20 tháng 5 lúc 10:24
Hệ thống kiến thức C++
C++ là một ngôn ngữ lập trình mạnh mẽ và linh hoạt, được sử dụng rộng rãi trong phát triển phần mềm hệ thống, game, ứng dụng hiệu năng cao và nhiều lĩnh vực khác. Để nắm vững C++, việc xây dựng một hệ thống kiến thức bài bản là vô cùng quan trọng. Bài viết này sẽ phác thảo một lộ trình học tập toàn diện, bao gồm các khía cạnh từ cơ bản đến n ...
Đăng vào ngày 20 tháng 5 lúc 04:25
Tìm kiếm nhị phân với khái niệm màu đỏ và màu xanh
Tìm kiếm nhị phân (Khoảng mở - mở)
Trước khi triển khai, hãy cùng tìm hiểu cách hoạt động của thuật toán tìm kiếm nhị phân. Chúng ta sẽ chia một mảng thành hai phần: màu đỏ và màu xanh. Màu xanh đại diện cho các phần tử thỏa mãn một điều kiện nhất định, trong khi màu đỏ đại diện cho các phần tử không thỏa mãn (tương tự như đèn giao thông, đèn đ ...
Đăng vào ngày 20 tháng 5 lúc 04:15
Thực hiện thuật toán phân cụm k-means bằng tay
Một、Python triển khai k-means
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# Để giảm số lần lặp, chúng ta nên khởi tạo tâm cụm trong phạm vi phân bố dữ liệu
def initialize_centroids(data, k): # Định nghĩa hàm chọn ngẫu nhiên tâm cụm
data_min = data.min() # Trả về giá trị nhỏ nhất của mỗi đặc trưng
data_max = ...
Đăng vào ngày 19 tháng 5 lúc 08:33
Từ giao đồ ăn đến mượn ô: Hướng dẫn sinh tồn thành phố đằng sau hai bài toán thuật toán "phản trực giác"
Giới thiệu bài viết
"Khi bạn than phiền người giao đồ ăn luôn đi đường vòng, có bao giờ bạn nghĩ rằng họ đang giải một bài toán toán học tinh vi? Khi bạn quét mã để mượn ô mà nhận ra chiếc ô lại đến từ khu phố bên cạnh, có nhận ra rằng đằng sau đó là thuật toán thay đổi quy tắc không-thời gian? Hôm nay, chúng ta sẽ khám phá những bí mật củ ...
Đăng vào ngày 18 tháng 5 lúc 15:20