ĐỀ THI MỚI

 1. Đề thi HSG THCS TP Hà Nội năm học 2021-2022  - Người góp admin   4 lượt xem

 2. Đề thi Tuyển sinh 10 tỉnh Khánh Hòa năm học 2025-2026  - Người góp admin   219 lượt xem

 3. Đề thi HSG THPT TP Hà Nội năm học 2023-2024  - Người góp admin   52 lượt xem

 4. Đề thi HSG THCS TP Hà Nội năm học 2023-2024  - Người góp admin   70 lượt xem

 5. Đề thi Tin học trẻ tỉnh Bà Rịa - Vũng Tàu năm học 2024-2025 (bảng B)  - Người góp admin   147 lượt xem

BÀI TẬP MỚI

Bình mua bán cổ phiếu VNI trên thị trường chứng khoán. Giả sử giá của một cổ phiếu VNI trong vòng \(N\) ngày lần lượt là \(A_{1},A_{2},\ldots,\ A_{N}\). Biết rằng mỗi ngày Bình chỉ thực hiện một trong những hoạt động sau:

  1. Mua một cổ phiếu VNI;

  2. Bán số lượng cổ phiếu VNI bất kì mà Bình đang sở hữu;

  3. Không thực hiện bất kì giao dịch nào.

Yêu cầu: Bình thực hiện mua bán cổ phiếu VNI như thế nào để thu được lợi nhuận lớn nhất nếu anh ấy tham gia mua bán bắt đầu từ ngày thứ\(\ T\) cho trước?

Dữ liệu vào:

  • Dòng đầu tiên gồm số nguyên dương \(N\ \left( N\ \leq 10^{5} \right)\) là số ngày biết giá cổ phiếu;

  • Dòng thứ hai gồm \(N\) số nguyên dương \(A_{1},A_{2},\ldots,\ A_{N}\) tương ứng là giá của một cổ phiếu VNI trong từng ngày (\(A_{i} \leq \ 10^{9};\ 1\ \leq i\ \leq N\));

  • Dòng thứ ba gồm một số nguyên dương \(Q\) là số lượng truy vấn \((Q\ \leq 10^{5})\);

  • \(Q\) dòng sau, mỗi dòng gồm một số nguyên dương \(T\ (T\ \leq \ N)\) thể hiện cho ngày đầu tiên mà Bình tham gia việc mua bán cổ phiếu VNI.

Kết quả:

Gồm \(Q\) dòng, mỗi dòng gồm một số nguyên duy nhất là lợi nhuận lớn nhất mà Bình thu được ở mỗi truy vấn tương ứng.

Ràng buộc:

  • \(50\%\) số test ứng với \(50\%\) số điểm của bài thoả mãn: \(N\ \leq 1000;Q = 1\);

  • \(30\%\) số test khác ứng với \(30\%\) số điểm của bài thoả mãn: \(N\ \leq \ 10^{5};Q = 1\);

  • \(20\%\) số test còn lại ứng với \(20\%\) số điểm của bài không có ràng buộc gì thêm.

Ví dụ:

Input Output Giải thích
4
1 2 5 4
2
1
3
7
0
Bình bắt đầu tham gia mua bán VNI vào ngày 1:
  • Ngày 1: mua \(1\) VNI với giá là \(1\).
  • Ngày 2: mua \(1\) VNI với giá là \(2\).
  • Ngày 3: bán \(2\) VNI với giá là \(5\).
  • Ngày 4: không mua hay bán VNI vào ngày này.
⇒ Lợi nhuận thu được là: \(- 1 - 2 + 2 \times 5 = 7\).
Bình bắt đầu tham gia mua bán VNI vào ngày 3:
  • Bình không mua bán VNI vào ngày 3 và ngày 4.
⇒ Lợi nhuận thu được là: \(0\).

Bạn cần Đăng nhập để nộp bài

Cho một hình chữ nhật gồm \(N\) dòng và \(M\ \)cột. Các dòng được đánh số từ \(1\) đến \(N\), từ trên xuống dưới. Các cột được đánh số từ \(1\) đến \(M\), từ trái sang phải. Ô ở dòng thứ \(i\) và cột thứ \(j\) được gọi là ô \((i,\ j)\) và có diện tích là \(1\) đơn vị. Có một số ô đã được điền sẵn kí tự \('X'\).

Yêu cầu: tìm hình chữ nhật con có diện tích lớn nhất chỉ chứa duy nhất một kí tự \('X'\).

Dữ liệu vào:

  • Dòng đầu tiên gồm ba số nguyên dương \(N,\ M,K\ (N,M \leq 10^{4};K \leq 10^{3})\) mô tả kích thước của hình chữ nhật và số lượng kí tự \('X'\) có trong hình chữ nhật;

  • \(K\) dòng sau, mỗi dòng gồm hai số nguyên dương \(d\)\(c\) là chỉ số dòng và cột của ô điền kí tự \('X'\) \((d \leq N;c \leq M)\).

Kết quả:

Ghi ra diện tích của hình chữ nhật lớn nhất thoả mãn yêu cầu đề bài.

Ràng buộc:

  • Có 50% số test tương ứng với 50% số điểm thoả mãn: \(N,M \leq 50;\)

  • 30% số test khác tương ứng với 30% số điểm thoả mãn: \(N,M \leq 500;\)

  • 20% số test còn lại tương ứng với 20% số điểm không có ràng buộc gì thêm.

Ví dụ:

Input Output Giải thích
4 5 4
2 3
2 5
3 1
4 4
9
X X
X
X

Bạn cần Đăng nhập để nộp bài

Do ảnh hưởng của dịch bệnh, các lớp học sẽ học kết hợp cả hình thức trực tiếp và trực tuyến. Để học sinh có thể hiểu kĩ hơn về bài học, giáo viên lưu lại video các bài giảng và tải lên nhóm lớp cho học sinh xem lại.

Một video bài giảng dài \(Z\) giây. Dung lượng mà video cần phát \(1\) giây là \(X\) MB. Nhưng mạng nhà An lúc đó chỉ có thể tải được \(Y\) MB trong \(1\) giây.

An muốn xem bài giảng mà không phải dừng lại giữa chừng. An quyết định trước khi bắt đầu xem, sẽ đợi trước \(T_{0}\) giây để bài giảng được tải xuống một dung lượng nhất định. Một video bài giảng được phát liên tục nếu tổng dung lượng tại thời điểm bất kì mà An đã tải về lớn hơn hoặc bằng tổng dung lượng của đoạn video tính đến thời điểm đó.

Yêu cầu: Hãy giúp An tìm lượng thời gian ít nhất \(T_{0}\) mà An phải đợi để có thể xem liên tục.

Dữ liệu vào:

Gồm một dòng chứa ba số nguyên dương \(X,\ Y,\ Z\) (\(1 \leq X,\ Y,\ Z \leq 10^{5};Y < X\));

Kết quả:

Một số nguyên dương \(T_{0}\) là thời gian ít nhất mà An phải đợi.

Ràng buộc:

  • \(80\%\) số test ứng với \(80\%\) số điểm của bài thoả mãn: \(1 \leq X,\ Y,\ Z \leq 100\);

  • \(20\%\) số test còn lại ứng với \(20\%\) số điểm của bài không có ràng buộc gì thêm.

Ví dụ:

Input Output Giải thích
4 1 1 3 - An đợi trước \(3\) giây nên An đã tải được sẵn \(3 \times 1 = 3\) MB.
- Tại giây thứ nhất của video, dung lượng mà An tải được sẽ là \(3 + 1 = 4\ \)MB, vừa bằng dung lượng mà video phát trong \(1\) giây là \(4\) MB.
10 3 2 5 - An đợi trước \(5\) giây nên An đã tải được sẵn \(5 \times 3 = 15\) MB.
- Tại giây thứ nhất của video, dung lượng mà An tải được sẽ là \(15 + 3 = 18\) MB. Lớn hơn dung lượng mà video phát trong \(1\) giây là \(10\) MB.
- Tại giây thứ \(2\) của video, dung lượng mà An tải được sẽ là \(18 + 3 = 21\) MB. Lớn hơn dung lượng mà video phát trong \(2\) giây là \(20\) MB.

Bạn cần Đăng nhập để nộp bài

Trong phòng thí nghiệm, các nhà khoa học đang nghiên cứu về gen của một chuỗi ARN đặc biệt được mã hoá bằng một xâu \(S\) gồm các kí tự \('A',\ 'U',\ 'G','X'\). Họ muốn cắt từ chuỗi ARN đó một mạch (được mã hoá bằng xâu \(X\)) cho trước.

Yêu cầu: từ chuỗi ARN \(S\) có thể cắt được ra tối đa bao nhiêu đoạn mạch \(X\).

Dữ liệu vào:

  • Dòng đầu tiên gồm một xâu kí tự \(S\) mô tả chuỗi ARN;

  • Dòng thứ hai gồm một xâu kí tự \(X\) mô tả đoạn mạch cần cắt ra.

Các xâu chỉ gồm các kí tự \({'A}',\ 'U',\ 'G','X'\) và độ dài các xâu không quá 103 kí tự.

Kết quả:

Một số nguyên duy nhất là kết quả của bài toán.

Ví dụ:

Input Output Giải thích
AUAUGXXAUGXGX
AUGX
2 AUAUGXXAUGXGX
AAAAA
AAA
1 AAAAA
AGAX
U
0

Bạn cần Đăng nhập để nộp bài

Có hai robot đang chuyển động thẳng đều, cùng chiều trên cùng một con đường, robot thứ nhất đang ở vị trí \(S_{1}\) di chuyển với vận tốc là \(V_{1}\) m/s, robot thứ hai đang ở vị trí \(S_{2}\) di chuyển với vận tốc là \(V_{2}\) m/s. Hỏi sau bao nhiêu lâu thì hai robot gặp nhau?

Dữ liệu vào:

  • Dòng đầu tiên gồm số nguyên dương \(S_{1}\) mô tả vị trí của robot thứ nhất;

  • Dòng thứ hai gồm số nguyên dương \(V_{1}\) mô tả vận tốc của robot thứ nhất;

  • Dòng thứ ba gồm số nguyên dương \(S_{2}\) mô tả vị trí của robot thứ hai;

  • Dòng thứ tư gồm số nguyên dương \(V_{2}\) mô tả vận tốc của robot thứ hai.

Các đơn vị khoảng cách được tính bằng mét, thời gian được tính bằng giây và \(S_{1} \neq S_{2}\); \(S_{1},S_{2},V_{1},V_{2} \leq 10^{9}\).

Kết quả:

In ra một số nguyên là phần nguyên của kết quả - thời gian mà hai robot gặp nhau. Nếu hai robot không thể gặp nhau thì in ra \(- 1\).

Ví dụ:

Input Output Giải thích
2
5
7
3
2 Sau 2.5 giây hai robot sẽ gặp nhau:
\[2 + 5 \times 2.5 = 14.5\]
\[7 + 3 \times 2.5 = 14.5\]
Phần nguyên của \(2.5\) là \(2\).
2
3
7
5
-1 Hai robot càng đi càng xa nhau.

Bạn cần Đăng nhập để nộp bài

Bạn cần Đăng nhập để nộp bài

Bạn cần Đăng nhập để nộp bài

Bạn cần Đăng nhập để nộp bài

Cho dãy \(n\) số nguyên, các phần tử trong dãy được đánh số thứ tự từ 1 đến \(n\). Dãy số được chia thành \(\frac{n}{k}\) đoạn, \(k\) là ước của \(n\), mỗi đoạn có \(k\) số theo quy luật:

- Đoạn thứ nhất có giá trị tăng dần từ 1 đến \(k\);

- Đoạn thứ hai có giá trị giảm dần từ \(2 \times k\) về \(k + 1\);

- Đoạn thứ ba có giá trị tăng dần từ \(2 \times k + 1\) đến \(3 \times k\);

- Đoạn thứ tư có giá trị giảm dần từ \(4 \times k\) về \(3 \times k + 1\);

- Đoạn thứ \(i\ (i \leq \frac{n}{k})\):

Nếu \(i\) lẻ: có giá trị tăng dần từ \((i - 1) \times k + 1\) đến \(i \times k\);

Nếu \(i\) chẵn: có giá trị giảm dần từ \(i \times k\) về \((i - 1) \times k + 1\);

Ví dụ với \(n = 24,\ k = 4\), dãy số nguyên có giá trị như sau:

1 2 3 4 8 7 6 5 9 10 11 12 16 15 14 13 17 18 19 20 24 23 22 21

Yêu cầu: Hãy tính tổng các số ở các vị trí từ \(l\) đến \(r\) trong dãy số đã cho.

Dữ liệu vào: Ghi 4 số nguyên \(n,\ k,\ l,\ r\) trên một dòng, trong đó \(k\) là ước của \(n\) \(\left( 1 \leq l \leq r \leq n \leq 10^{9} \right)\);

Kết quả: Ghi một số nguyên duy nhất cho biết kết quả bài toán.

Ví dụ:

Input Output Input Output
24 1 1 24 300 24 4 7 21 209

Ràng buộc:

- Có 50% số test tương ứng 50% số điểm có \(k = 1\ \)hoặc \(k = n\);

- Có \(30\%\ \)số test khác tương ứng \(30\%\) số điểm có \(n \leq 10^{6}\);

- Có 20% số test còn lại tương ứng 20% số điểm không có ràng buộc gì thêm.

Bạn cần Đăng nhập để nộp bài

Tại xứ sở thần tiên Alpha có \(n\) chú thỏ đang thu hoạch cà rốt. Chú thỏ thứ \(i\ (1 \leq i \leq n)\) bắt đầu thu hoạch ở vị trí \(x_{i}\) và thực hiện \(m_{i}\) bước nhảy, mỗi bước nhảy được đúng \(k_{i}\) đơn vị độ dài; chú thỏ thứ \(i\) có cách thu hoạch cà rốt như sau:

- Ở vị trí bắt đầu \(x_{i}\) thỏ thu hoạch được \(x_{i}\) củ cà rốt;

- Ở lần nhảy thứ nhất, thỏ thu hoạch được \(x_{i} + k_{i}\) củ cà rốt;

- Ở lần nhảy thứ \(t\ (2 \leq t \leq m_{i})\) số cà rốt thỏ thu hoạch được nhiều hơn \(k_{i}\) củ cà rốt so với lần nhảy thứ \(t - 1\).

Yêu cầu: Tính tổng số cà rốt sau khi \(n\) chú thỏ thu hoạch xong. Số lượng cà rốt thu hoạch có thể rất lớn nên chỉ cần đưa ra kết quả sau khi đã chia lấy phần dư cho \((10^{9} + 7)\).

Dữ liệu vào:

- Dòng đầu tiên chứa số nguyên dương \(n\ (1 \leq n \leq 10^{6})\);

- Trong \(n\) dòng tiếp theo, dòng thứ \(i\ (1 \leq i \leq n)\) chứa 3 số nguyên dương \(x_{i},m_{i},k_{i}\ (1 \leq x_{i},m_{i},k_{i} \leq 10^{9})\).

Kết quả:

- Ghi một số nguyên duy nhất cho biết kết quả bài toán.

Ví dụ:

Input Output Giải thích
2
2 3 5
7 2 2
65 Chú thỏ thứ nhất có \(x_{1} = 2\) thu hoạch được số lượng cà rốt là: \(2 + (2 + 5) + (2 + 5 + 5) + (2 + 5 + 5 + 5) = 38;\)
Chú thỏ thứ hai có \(x_{2} = 7\) thu hoạch được số lượng cà rốt là: \(7 + (7 + 2) + (7 + 2 + 2) = 27;\)
Vậy tổng là \(38 + 27 = 65.\)

Ràng buộc:

- Có 60% test tương ứng 60% số điểm có \(n,x_{i},m_{i},k_{i} \leq 10^{3};1 \leq i \leq n\);

- Có 40% test còn lại tương ứng 40% số điểm không có ràng buộc gì thêm.

Bạn cần Đăng nhập để nộp bài

Thông báo cập nhật Website

  1. 05/02/2025: Cộng điểm và thời gian sử dụng Với mỗi lượt nộp bài đúng (đạt 100% số test) được cộng điểm và thời gian sử dụng:

    • Cộng round(12/x,2) điểm
    • Cộng round(5/x,2) ngày sử dụng

    Trong đó x là số lần nộp đúng của bài tập (không tính của admin)

  2. 05/02/2025: Với các tài khoản đăng kỳ từ 05/02/2025 sẽ có 30 ngày sử dụng. Tất cả các tài khoản có ít nhất 05 lượt nộp/bài tập

  3. 03/02/2025: Contest luyện tập cho kỳ thi Olympic 30/4 Để chuẩn bị cho kỳ thi truyền thống Olympic 30/4 tại Thành phố Hồ Chí Minh, admin tạo hai Contest dành cho hai khối 10 và 11. Các bài tập trong hai Contest này được lấy từ đề thi Olympic các năm trước. Tham gia Contest:

  4. 01/01/2025: Có thể xem được đề bài của tất cả các bài tập không thuộc Contest chưa diễn ra mà không cần đăng nhập, tuy nhiên để được nộp bài bạn cần phải đăng nhập.

  5. 14/11/2024: Cộng điểm và thời hạn sử dụng tài khoản khi nộp bài bằng Ngôn ngữ Scracth

    • Người đầu tiên sử dụng Scratch để nộp đúng 100% số test của 1 bài tập bạn sẽ nhận 80 điểm (không tính các ngôn ngữ lập trình khác)
    • Mỗi lượt nộp bài đúng 100% số test bạn sẽ nhận được 20 điểm5 ngày sử dụng
    • Lưu ý: Mỗi bài tập bạn nhận được tối đa 100 điểm5 ngày sử dụng
  6. 09/11/2024: Trình chấm bài bằng ngôn ngữ lập trình Scratch đã được thêm vào hpcode. Các bạn xem hướng dẫn nộp bài tại đây

  7. 30/10/2024: Chức năng Shortlink dùng để rút gọn link được thêm vào hpcode không chỉ dùng để rút gọn từ một đường link dài, xấu thành đường link ngắn gọn, dễ nhớ mà còn là nơi chia sẽ tài liệu, chuyên đề,bộ test.
  8. Ngừng cộng điểm cho các bài nộp: Từ ngày 27/9/2024 Website ngừng cộng điểm
  9. Các chuyên đề bồi dưỡng HSG: Các chuyên đề này được tìm thấy trên Internet nên admin chia sẻ với mọi người, tiếc là phần lớn không có Testcase kèm theo
  10. Quảng cáo: admin đang tiến hành thử nghiệm 1 loại quảng cáo trên web. Quảng cáo xuất hiện ở mọi trang trên Website ngoại trừ phần nộp và chấm bài.
  11. Không chia sẻ đề thi: admin có khá nhiều đề thi của các tỉnh, tuy nhiên vì một số lý do nên các bạn không xem được các đề thi thuộc mục Đề thi HSG. Tuy vậy trong thời gian tới admin vẫn chia sẻ một số đề thi do admin tự soạn lại (gõ lại đề, sinh test,...) dựa trên các đề thi có sẵn trên Internet.
hpcode.edu.vn
Code tích cực
Trong 24h
  1. trungnam (5/5)
  2. sythai (5/8)
  3. npk1605 (5/10)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]