| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | Tập xe | 100 (p) | 1.0s | 256M |
| 2 | Đếm cặp | 100 (p) | 1.0s | 256M |
| 3 | Đếm cặp đôi (HSG'20) | 100 (p) | 1.0s | 977M |
| 4 | high | 100 (p) | 1.0s | 256M |
| 5 | sunw | 100 (p) | 1.0s | 256M |
| 6 | Bộ số tam giác (HSG12'18-19) | 100 (p) | 1.0s | 500M |
| 7 | Tìm cặp số | 100 (p) | 1.0s | 640M |
| 8 | Two pointer 1A | 100 (p) | 1.0s | 256M |
| 9 | Two pointer 1B | 100 (p) | 1.0s | 256M |
| 10 | Two pointer 1C | 100 (p) | 1.0s | 256M |
Cô giáo trường tiểu học \(X\) đang dạy \(n\) học sinh tập xe đạp, các học sinh được đánh số từ \(1\) tới \(n\), học sinh thứ \(𝑗\) có trọng lượng là \(a_𝑗\). Có một xe đạp duy nhất với tải trọng là \(m\), hai học sinh chỉ có thể cùng lên xe nếu tổng trọng lượng của hai học sinh không vượt quá \(m\).
Cô giáo tự hỏi có bao nhiêu cách chọn hai học sinh khác nhau cho cùng lên xe, sau nhiều giờ tính toán không có kết quả, cô quyết định hỏi các chuyên gia lập trình giải bài toán Counting Student Pairs (CSP)
Yêu cầu: Đếm số cặp chỉ số \(i, j\) trong đó \(i < j\) và \(a_i + a_j \leq m\)
Ghi một số nguyên duy nhất là đáp số
Test 1
5 6
1 2 3 4 5
6
Một ngày lướt fb, TN thấy một đôi couple chia sẻ bài bói toán online, rằng đôi couple kia hợp nhau thế nào, yêu nhau ra sao, vân vân và mây mây. Tò mò không biết âm dương ngũ hành, yêu nhau hợp tình nghĩa không, TN cũng bảo Ami cùng mình tham gia bói toán online. Nhưng Ami đời nào tin những thuật toán tào lao ấy? “Bởi vì không một thuật toán nào định nghĩa được tình yêu cả” – Ami nói. Cậu bèn dẫn TN đến cặp thầy bói nổi danh thiên hạ - zerolifes và huy_yeu_minh_nghia. Hai lúc nào cũng hơn một mà :)).
Sau khi xem chỉ tay, tướng số, ngũ hành, chiêm tinh, zerolifes không nói không rằng. Anh đọc liên tục 1 câu thần chú chỉ toàn những con số vô nghĩa nhưng không giảm. Đột nhiên zerolife dừng lại, huy_yeu_minh_nghia hét lên một số :”30”. “Nhưng 30 là gì ? Không lẽ 2 vị này cao thâm đến mức biết ngày mình và TN quen nhau sao ?”, Ami thầm nghĩ, “Hay 30 là số tỉ USD mà sau này mình tậu được ? Không, không thể ít như vậy được.” Không thể kìm nén, Ami thỉnh cầu 2 vị cao nhân. Zerolifes nói :”Đơn giản thôi, âm dương hòa hợp, trong cương có nhu, trong nhu có cương, cậu hãy ghi nhớ dãy số của ta và số mà huy_yeu_minh_nghia vừa đọc, hãy đếm xem trong dãy số của ta có bao nhiêu cặp số có tổng đúng bằng k. Nếu số cặp càng lớn, khả năng hai người bền lâu càng nhiều.” Tất nhiên, Ami không dám làm ngay lập tức, vì sợ sự thật có thể làm cậu suy sụp.
Tóm lại, có một dãy gồm \(n\) số nguyên dương không giảm \(a_1,\) \(a_2,\) \(a_3,\) \(…,\) \(a_n\) và một số \(k,\) Ami muốn đếm số cặp \((i,\) \(j)\) không trùng nhau mà \(a_i\) \(+\) \(a_j\) \(=\) \(k,\) lưu ý rằng \((i,\) \(j)\) và \((j,\) \(i)\) được tính là \(1\) cặp.
Test 1
4 6
1 1 5 5
4
Test 2
6 5
1 1 1 4 5 5
3
Cho dãy số \(A\) gồm \(n\) phần tử nguyên dương \(A_1,A_2,…,A_n\). Mỗi phần tử có giá trị không vượt quá \(10^9\) và \(n≤ 10^5\). Một cặp số được gọi là cặp tương đồng với \(x\), nếu cặp số này có tổng bằng số \(x\) cho trước nào đó.
Yêu cầu: Hãy đếm xem trong dãy số \(A\) có bao nhiêu cặp số (\(A_i;A_j\)) tương đồng với \(x\) (có nghĩa là \(A_i+ A_j=x\)) với \(i<j\).
Test 1
7 6
1 2 4 3 4 5 3
4
Khôi vừa viết một ứng dụng hẹn hò mang tên Fake love. Ứng dụng đang có \(n\) bạn nữ, \(m\) bạn nam đang sử dụng, biết rằng 2 người nam nữ sẽ chỉ thấy hợp nhau nếu độ chênh lệch cân nặng của họ không vượt quá \(k\). Qua một số thuật toán, ứng dụng của của Khôi sẽ xếp các nam nữ hợp nhau thành các couple. Vì muốn biết ứng dụng của mình đã tối tưu chưa, nên Khôi hỏi bạn có nhiều nhất bao nhiêu couple có thể có (1 nam chỉ có ghép thể với 1 bạn nữ, ngược lại cũng vậy).
Test 1
4 3 5
60 45 80 60
30 60 75
2
Gần đến tết Tân Sửu 2021, \(n\) bạn học sinh lớp A5 khóa 16-19 đang họp lớp và quyết định rằng Chủ nhật tuần này sẽ đi chơi công viên Châu Phi.
Ở trò chơi "Tàu lượn siêu tốc", mỗi hàng của tàu sẽ chứa tối đa hai chỗ ngồi, và tổng cân nặng hai chỗ ngồi này có giá trị không quá \(x\).
Vậy khi đến chơi tàu lượn siêu tốc, tàu lượn trên phải có ít nhất bao nhiêu hàng ngồi để tất cả các bạn A5 có thể lên chơi 1 lúc.
Test 1
4 10
7 2 3 9
3
Cho dãy số \(A\) gồm \(n\) phần tử nguyên dương \(A_1, A_2, …, A_n\). Mỗi phần tử có giá trị không vượt quá \(10^9\) và \(1 \lt n \leq 5000\). Một bộ ba số được gọi là bộ số tam giác, nếu ba số này tạo thành ba cạnh của một tam giác nào đó.
Yêu cầu: Hãy đếm xem trong dãy \(A\) có bao nhiêu bộ số tam giác (\(A_i, A_j, A_k\)) với \(i, j, k\) đôi một khác nhau.
Test 1
5
4 3 1 5 7
3
Cho một mảng số nguyên \(A\) có \(N\) phần tử, mảng này đã được sắp xếp tăng dần. Hãy tìm vị trí của hai phần tử khác nhau bất kỳ sao cho tổng của chúng có giá trị là \(X\). Nếu trong dãy \(A\) không tồn tại hai phần tử khác nhau có tổng là \(X\) thì in ra "No solution".
Test 1
6 16
2 3 5 7 9 12
4 5
Bạn có \(2\) mảng số nguyên không âm được sắp xếp theo thứ tự không giảm \(a\) gồm \(n\) phần tử và \(b\) gồm \(m\) phần tử.
Hãy ghép \(a\) và \(b\) thành một mảng số nguyên \(c\) gồm \(n + m\) phần tử.
Hãy cho biết mảng \(c\) theo thứ tự không giảm.
Test 1
6 7
1 6 9 13 18 18
2 3 8 13 15 21 25
1 2 3 6 8 9 13 13 15 18 18 21 25
Bạn có \(2\) mảng số nguyên không âm được sắp xếp theo thứ tự không giảm \(a\) gồm \(n\) phần tử và \(b\) gồm \(m\) phần tử.
Mảng \(c\) gồm \(m\) phần tử được xác định như sau:
\(c_i\) = số phần tử trong mảng \(a\) có giá trị nhỏ hơn \(b_i\)
Hãy xác định mảng \(c\)
\(1 \leq n, m \leq 10^5\)
\(0 \leq a_i, b_i \leq 10^9\)
Test 1
6 7
1 6 9 13 18 18
2 3 8 13 15 21 25
1 1 2 3 4 6 6
Bạn có \(2\) mảng số nguyên không âm được sắp xếp theo thứ tự không giảm \(a\) gồm \(n\) phần tử và \(b\) gồm \(m\) phần tử.
Đếm số cặp \((i, j)\) sao cho \(a_i = b_j\).
Test 1
8 7
1 1 3 3 3 5 8 8
1 3 3 4 5 5 5
11