Tìm kiếm nhị phân (lớp 7)
Tìm Kiếm Trong Mảng Sắp Xếp (tìm kiếm nhị phân)
Nộp bàiPoint: 1
Cho một dãy số nguyên A gồm N phần tử đã được sắp xếp theo thứ tự tăng dần. Có Q truy vấn, mỗi truy vấn gồm một số nguyên X. Hãy kiểm tra xem X có xuất hiện trong dãy A hay không.
Dữ liệu vào:
Dòng 1: Hai số nguyên N và Q.
Dòng 2: N số nguyên là các phần tử của dãy A.
Q dòng tiếp theo: Mỗi dòng chứa một số nguyên X cần tìm.
Dữ liệu ra:
Với mỗi truy vấn, in ra "YES" nếu X xuất hiện trong A, ngược lại in ra "NO".
Ràng buộc:
1 <= N, Q <= 10^5
A[i]|, |X| <= 10^9
Ví dụ:
Input:
5 3
1 3 5 7 9
3
4
9
Output:
YES
NO
YES
Tìm kiếm cơ bản (bs)
Nộp bàiPoint: 1
Cho một dãy số nguyên A gồm N phần tử đã được sắp xếp theo thứ tự tăng dần. Hãy kiểm tra xem số nguyên X có xuất hiện trong dãy hay không.
Dữ liệu vào:
Dòng đầu tiên chứa hai số nguyên dương N và X.
Dòng thứ hai chứa N số nguyên A[1], A[2], ..., A[N], các số cách nhau bởi dấu cách.
Dữ liệu ra:
In ra "YES" nếu X xuất hiện trong dãy, ngược lại in ra "NO".
Giới hạn:
1 <= N <= 10^5
|A[i]|, |X| <= 10^9
Ví dụ:
Input:
5 3
1 2 3 4 5
Output:
YES
Vị trí của X
Nộp bàiPoint: 1
Cho dãy số A gồm N số nguyên đã sắp xếp tăng dần. Hãy tìm chỉ số (vị trí) của số X trong dãy. Nếu X không tồn tại, in ra -1. Quy ước chỉ số bắt đầu từ 1.
Dữ liệu vào:
Dòng 1: N và X.
Dòng 2: N số nguyên A[i].
Dữ liệu ra:
Một số nguyên duy nhất là vị trí của X hoặc -1.
Giới hạn:
1 <= N <= 10^5
Các phần tử trong mảng đôi một khác nhau.
Ví dụ:
Input:
5 4
1 3 4 7 9
Output:
3
Tìm kiếm trong mảng giảm dần
Nộp bàiPoint: 1
Cho dãy số A gồm N phần tử được sắp xếp theo thứ tự GIẢM dần. Hãy kiểm tra xem X có tồn tại trong dãy không.
Dữ liệu vào:
Dòng 1: N và X.
Dòng 2: N số nguyên A[i] (A[1] >= A[2] >= ... >= A[N]).
Dữ liệu ra:
In ra "YES" hoặc "NO".
Giới hạn:
1 <= N <= 10^5
Ví dụ:
Input:
5 2
5 4 3 2 1
Output:
YES
Tìm kiếm vị trí đầu tiên của phần tử x trong mảng
Nộp bàiPoint: 1
Cho một mảng A nguyên gồm N phần tử đã sắp xếp tăng dần, hãy tìm chỉ số của phần tử x xuất hiện đầu tiên trong mảng, ví dụ mảng 1, 3, 4, 5, 5, 5, 6, 7. Nếu tìm số x = 5 thì số 5 xuất hiện đầu tiên sẽ có chỉ số 3, in ra chỉ số này. Nếu không tìm thấy in ra -1.
Ràng buộc: ~0 < N \leq 10^6~, ~-10^6 < A[i] \leq 10^6~
Input 01:
8 5
1 3 4 5 5 5 6 7
Output 01:
3
Input 02:
7 -3
-3 -3 -1 4 5 6 7
Output 02:
0
Input 03:
6 10
1 3 4 5 6 7
Output 03:
-1
Tìm kiếm phần tử xuất hiện cuối cùng
Nộp bàiPoint: 1
Cho một mảng A nguyên gồm N phần tử, hãy tìm chỉ số của phần tử xuất hiện cuối cùng trong mảng, ví dụ mảng 1, 3, 4, 5, 5, 5, 6, 7. Nếu tìm số 5 thì số 5 xuất hiện cuối cùng sẽ có chỉ số 5, chỉ số này được in ra. Nếu không tìm thấy thì in ra -1
Ràng buộc: ~0 < N \leq 10^6~, ~-10^6 < A[i] \leq 10^6~
Input 01:
8 5
1 3 4 5 5 5 6 7
Output 01:
5
Input 02:
7 -3
-3 -3 -1 4 5 6 7
Output 02:
1
Input 03:
6 10
1 3 4 5 6 7
Output 03:
-1
Vị trí đầu tiên lớn hơn hoặc bằng X
Nộp bàiPoint: 1
Cho mảng A gồm N phần tử. Sử dụng hàm có sẵn tìm vị trí đầu tiên của phần tử lớn hơn hoặc bằng X.
Dòng đầu tiên nhập N và X
Dòng tiếp theo nhập N giá trị của mảng A
In ra vị trí nếu tìm thấy, nếu không tìm thấy thì in ra N.
Ràng buộc: ~0 < N \leq 10^6~; ~0 \leq A[i] \leq 10^9~
Input 01:
10 6
3 5 6 6 6 6 9 10 11 13
Output 01:
2
Vị trí đầu tiên trong mảng lớn hơn hoặc bằng 6 là vị trí có chỉ số là 2 (có giá trị là 6)
Input 02:
10 14
3 5 6 6 6 6 9 10 11 13
Output 02:
10
Số nhỏ nhất lớn hơn Ai
Nộp bàiPoint: 1
Cho mảng A gồm n phần tử. Nhiệm vụ của bạn là tìm giá trị nhỏ nhất (phải thuộc mảng A) lớn hơn Ai (i = 0, 1, 2,, n-1). Đưa ra ký tự _ nếu Ai không có phần từ lớn hơn nó. Ví dụ với mảng A = (13, 6, 7, 12) ta có kết quả là (_ , 7, 12, 13).
Định dạng đầu vào: Dòng đầu tiên đưa vào n là số phần tử của mảng A; Dòng kế tiếp đưa vào n số A[i] của mảng; các số được viết cách nhau một vài khoảng trống.
Ràng buộc: 1 <= N <= 10^5; 1 ≤ A[i] <= 10^5.
Định dạng đầu ra: Đưa ra kết quả trên 1 dòng
Input:
9
6 3 9 8 10 2 1 15 7
Output:
7 6 10 9 15 3 2 _ 8
Hàm tìm kiếm nhị phân
Nộp bàiPoint: 1
Cho một mảng A các số nguyên có N phần tử, sử dụng hàm tìm kiếm nhị phân có sẵn để tìm kiếm giá trị X nhập từ bàn phím
Dòng đầu tiên nhập N và X
Dòng tiếp theo nhập N giá trị của mảng A
In ra FOUND nếu tìm thấy và NOT FOUND nếu không tìm thấy
Ràng buộc: ~0 < N \leq 10^6~; ~0 \leq A[i] \leq 10^9~
Input:
5 6
3 5 6 9 13
Output:
FOUND
Đếm số lần xuất hiện của x trong mảng sử dụng tìm kiếm nhị phân
Nộp bàiPoint: 1
Nhập vào một mảng các số nguyên A có N phần tử và một số nguyên X, đếm xem X xuất hiện bao nhiêu lần trong mảng.
Ràng buộc: ~0 < N \leq 10^6~; ~-10^6 \leq A[i], X \leq 10^6~
Dữ liệu vào gồm 2 dòng, dòng thứ nhất là số lượng N phần tử và X, dòng thứ 2 lần lượt là N phần tử trong mảng A.
Input 01:
5 3
5 1 4 6 3
Output 01:
1
Số 3 xuất hiện 1 lần trong mảng
Input 02:
6 2
1 3 1 4 1 7
Output 02:
0