Thử thách ngày 2022.11.09 - Giải thuật mô phỏng NOIP2022
Khoa học
Nguồn: CF461C Appleman and a Sheet of Paper, độ khó 2200.
Nhận thấy rằng với các giá trị p ≤ floor(now/2), việc duy trì trực tiếp là hợp lệ về mặt độ phức tạp.
Trong trường hợp p > floor(now/2), việc đảo ngược nửa bên phải cũng đúng.
Do đó, ta duy trì một nhãn đảo ngược, thực hiện thao tác trực tiếp và cập nhật tổng đoạn, thời gian ...
Đăng vào ngày 22 tháng 8 lúc 20:00
Khái niệm và Sử dụng Phương thức trong Java
Phương thức là gì?
Trong Java, phương thức là một tập hợp các câu lệnh được nhóm lại để thực thi một chức năng cụ thể. Chúng hoạt động như các khối chức năng, giải quyết một loại vấn đề nhất định thông qua các bước được sắp xếp. Phương thức thuộc về các lớp hoặc đối tượng và có thể được tạo trong một chương trình và gọi từ những nơi khác.
...
Đăng vào ngày 10 tháng 8 lúc 02:07
Giải mã bài toán P5318: Hướng dẫn chi tiết về duyệt đồ thị bằng DFS đệ quy
Chào mừng các bạn đến với bài viết giải thích chi tiết cách áp dụng kỹ thuật Duyệt theo chiều sâu (DFS) sử dụng đệ quy để giải quyết bài toán P5318. Chúng ta sẽ cùng nhau khám phá từng bước một cách thật tự nhiên và dễ hiểu, như một cuộc trò chuyện giữa những người bạn.
Phân tích bài toán (Phiên bản siêu đơn giản)
Hãy tưởng tượng bạn đ ...
Đăng vào ngày 26 tháng 7 lúc 14:48
Hướng dẫn và Ghi chú về Ngăn Xếp trong C
Mục lục
Giới thiệu
Nắm vững định nghĩa, đặc điểm và kiểu dữ liệu trừu tượng của ngăn xếp
Định nghĩa
Là cấu trúc chỉ cho phép chèn/xóa tại đầu cuối
Đặc điểm
Đầu cuối là đỉnh (top)
Nguyên tắc sau vào trước ra
Kiểu dữ liệu trừu tượng
Trang 57
Mối quan hệ giữa ngăn xếp và đệ quy
Đệ quy
Định nghĩa đệ quy
Khi một hà ...
Đăng vào ngày 3 tháng 7 lúc 13:56
Xây dựng cây nhị phân từ dãy trung thứ tự và hậu thứ tự
Bài toán
Cho hai mảng số nguyên trungTu và hauTu tương ứng biểu diễn dãy trung thứ tự và hậu thứ tự của cùng một cây nhị phân. Nhiệm vụ là xây dựng lại cây nhị phân từ hai dãy này.
Ví dụ 1:
<strong>Đầu vào:</strong> trungTu = [9,3,15,20,7], hauTu = [9,15,7,20,3]<br><strong>Đầu ra:</strong> [3,9,20,null,null,15,7] ...
Đăng vào ngày 3 tháng 7 lúc 10:33
Giải bài toán lấp đầy thảm bằng phương pháp Chia để trị
Bài toán: P1228 Lấp đầy thảm - Luogu
Hiểu rõ cách tiếp cận bài toán này sẽ giúp bạn giải quyết một cách dễ dàng.
Trước hết, chúng ta chia hình vuông thành bốn vùng: trên-trái, dưới-trái, trên-phải, dưới-phải. Đầu tiên, xác định tọa độ (x, y) nằm ở vùng nào.
Nếu tọa độ nằm ở góc trên-trái, chúng ta đặt một ô vuông ở đường chéo đối diện, tức là ...
Đăng vào ngày 27 tháng 6 lúc 01:55
Sắp xếp hợp nhất
Giới thiệu
Sắp xếp hợp nhất (Merge Sort) là thuật toán sắp xếp dựa trên nguyên lý chia để trị và đệ quy. Bài viết này trình bày chi tiết về cách triển khai và tối ưu thuật toán này.
Nguyên lý hoạt động
Thuật toán hoạt động theo 2 bước chính:
Chia mảng: Chia mảng thành hai nửa và thực hiện sắp xếp từng nửa.
Hợp nhất: Kết hợp hai mảng đã được ...
Đăng vào ngày 24 tháng 6 lúc 02:58
[Giải Tứ Lanqiao Cup C++ Nhóm B] Biểu diễn số dưới dạng phân số
Nguồn: Giải Tứ Lanqiao Cup Nhóm C++
Thuật toán: Quay lui và tối ưu
Mô tả bài toán
Số 100 có thể biểu diễn dưới dạng phân số như sau: 100 = 3 + 69258/714
Cũng có thể biểu diễn là: 100 = 82 + 3546/197
Lưu ý đặc điểm: trong biểu diễn phân số, các chữ số từ 1 đến 9 xuất hiện chính xác một lần (không chứa số 0).
Loại biểu diễn phân số như vậy, số 1 ...
Đăng vào ngày 21 tháng 6 lúc 01:54
Triển khai chuỗi Fibonacci bằng vòng lặp
1. Định nghĩa chuỗi Fibonacci
Chuỗi Fibonacci, còn được gọi là dãy Fibonacci, là một chuỗi số mà trong đó mỗi số sau bằng tổng của hai số trước nó. Chuỗi này được nhà toán học người Ý Leonardo Fibonacci giới thiệu vào năm 1202. Định nghĩa chính xác của nó là:
1. Số hạng thứ nhất (F(1)) và số hạng thứ hai (F(2)) đều bằng 1;
2. Từ số hạng thứ ba ...
Đăng vào ngày 14 tháng 6 lúc 06:26
Codeforces Round 986 (Div. 2) - Phân tích và giải thuật
Bài A: Di chuyển theo hướng
Do giới hạn nhỏ, ta có thể mô phỏng toàn bộ quá trình di chuyển bằng cách lặp lại chuỗi lệnh nhiều lần. Chỉ cần kiểm tra sau mỗi bước xem đã đến tọa độ mục tiêu chưa.
#include <iostream>
#include <string>
using namespace std;
void process() {
int n, tx, ty;
string moves;
cin >> n >> tx >> ty ...
Đăng vào ngày 12 tháng 6 lúc 08:21