[JAVA T2 2024]. TEST 2. ARRAYLIST, SET & MAP
[Set & Map Cơ Bản]. Bài 1. Set Map & int
Nộp bàiPoint: 1
Cho mảng A[] gồm N phần tử số nguyên int, bạn hãy lọc ra các giá trị khác nhau trong mảng và in ra theo thứ tự tăng dần. Bài này bạn cài đặt lần lượt bằng set & map
Đầu vào
Dòng đầu tiên là số nguyên N.
Dòng tiếp theo gồm N số nguyên A[i]
Giới hạn
1≤ N ≤ 10^5
-10^9 ≤ A[i] ≤ 10^9
Đầu ra
Dòng 1 in ra số lượng số nguyên khác nhau trong mảng
Dòng 2 in ra các số nguyên khác nhau theo thứ tự tăng dần
Ví dụ :
Input 01
9
1 2 1 2 3 1 2 4 1
Output 01
4
1 2 3 4
[Set & Map Cơ Bản]. Bài 2. Set Map & int 2
Nộp bàiPoint: 1
Cho mảng A[] gồm N phần tử số nguyên int, bạn hãy lọc ra các giá trị khác nhau trong mảng và in ra theo thứ tự giảm dần. Bài này bạn cài đặt lần lượt bằng set & map
Đầu vào
Dòng đầu tiên là số nguyên N.
Dòng tiếp theo gồm N số nguyên A[i]
Giới hạn
1≤ N ≤ 10^5
-10^9 ≤ A[i] ≤ 10^9
Đầu ra
Dòng 1 in ra số lượng số nguyên khác nhau trong mảng
Dòng 2 in ra các số nguyên khác nhau theo thứ tự giảm dần
Ví dụ :
Input 01
9
1 2 1 2 3 1 2 4 1
Output 01
4
4 3 2 1
[Set & Map Cơ Bản]. Bài 3. Set Map & char
Nộp bàiPoint: 1
Cho mảng A[] gồm N kí tự là chữ cái in hoa, in thường hoặc chữ số, bạn hãy đếm xem có bao nhiêu ký tự khác nhau trong mảng này. Sau đó hãy in ra ký tự có thứ tự từ điển lớn nhất, nhỏ nhất, lớn thứ nhì và nhỏ thứ nhì trong mảng.
Dữ liệu đảm bảo có ít nhất 2 kí tự khác nhau trong mảng. Bài này bạn cài đặt lần lượt bằng set & map
Đầu vào
Dòng đầu tiên là số nguyên N.
Dòng tiếp theo gồm N ký tự A[i]
Giới hạn
1≤ N ≤ 10^5
Đầu ra
Dòng 1 in ra số lượng ký tự khác nhau trong mảng
Dòng 2 in ra ký tự có thứ tự từ điển lớn nhất, nhỏ nhất, lớn thứ nhì và nhỏ thứ nhì trong mảng.
Ví dụ :
Input 01
10
2 8 t e c h t e c h
Output 01
6
t 2 h 8
[Set & Map Cơ Bản]. Bài 4. Set Map & find
Nộp bàiPoint: 1
Cho mảng A[], B[] gồm N và M phần tử, bạn được yêu cầu kiểm tra xem mỗi phần tử trong mảng A[] có xuất hiện trong mảng B[] hay không ? Nếu có hãy in 28tech, ngược lại in 29tech. Bài này bạn cài đặt lần lượt bằng set & map
Gợi ý : Lưu mảng B[] vào set (map) để tìm kiếm nhanh hơn.
Đầu vào
Dòng đầu tiên là số nguyên N và M.
Dòng thứ 2 gồm N số nguyên A[i]
Dòng thứ 3 gồm M số nguyên B[i]
Giới hạn
1≤ N, M ≤ 10^5
-10^9 ≤ A[i], B[i]≤ 10^9
Đầu ra
In ra kết quả của bài toán
Ví dụ :
Input 01
3 5
1 2 3
1 2 6 7 8
Output 01
28tech 28tech 29tech
[Set & Map Cơ Bản]. Bài 5. Set Map & count
Nộp bàiPoint: 1
Cho mảng A[], B[] gồm N và M phần tử, bạn được yêu cầu kiểm tra xem mỗi phần tử trong mảng A[] có xuất hiện trong mảng B[] bao nhiêu lần? Bài này bạn cài đặt lần lượt bằng set & map
Gợi ý : Lưu mảng B[] vào trong multiset, sau đó duyệt qua từng phần tử trong mảng A[] và sử dụng hàm count để đếm
Đầu vào
Dòng đầu tiên là số nguyên N.
Dòng tiếp theo gồm N số nguyên A[i]
Giới hạn
1≤ N ≤ 10^5
-10^9 ≤ A[i] ≤ 10^9
Đầu ra
In ra số lần xuất hiện của từng phần tử của mảng A[] trong mảng B[]
Ví dụ :
Input 01
3 6
1 2 3
1 1 1 2 1 4
Output 01
4 1 0
[Set & Map]. Bài 28. Tần suất lớn nhất
Nộp bàiPoint: 2
Cho mảng A[] gồm N kí tự, bạn hãy xác định xem tần suất lớn nhất của 1 kí tự xuất hiện trong mảng là bao nhiêu. Và có bao nhiêu kí tự thỏa mãn có tần suất lớn nhất đó. Ví dụ : A[] = {2, 8, t, e, c, h, t, e, c, h} thì tần suất lớn nhất của 1 kí tự lớn nhất là 2 và có 4 kí tự t, e, c, h thỏa mãn
Đầu vào
Dòng 1 là N : số kí tự trong mảng
Dòng 2 gồm N kí tự viết cách nhau 1 dấu cách
Giới hạn
1<=N<=10^6
Các kí tự là chữ in hoa, in thường và chữ số
Đầu ra
Dòng 1 in ra tần suất lớn nhất của kí tự
Dòng 2 in lần lượt các kí tự thỏa mãn có cùng tần suất lớn nhất đó theo thứ tự từ điển tăng dần.
Ví dụ :
Input 01
10
2 8 t e c h t e c h
Output 01
2
c e h t
[Set & Map]. Bài 29. Kí tự chữ cái khác nhau
Nộp bàiPoint: 2
Cho một mảng kí tự A[] gồm N kí tự, bạn hãy xác định có bao nhiêu kí tự là chữ cái khác nhau xuất hiện trong mảng A[] nhưng không phân biệt hoa thường. Tức là chữ cái in hoa và in thường của cùng 1 chữ cái được coi là giống nhau, ví dụ a và A được coi là giống nhau.
Đầu vào
Dòng 1 là N : số kí tự trong mảng
Dòng 2 gồm N kí tự viết cách nhau 1 dấu cách
Giới hạn
1<=N<=10^6
Các kí tự là chữ in hoa, in thường và chữ số
Đầu ra
Dòng 1 in ra số lượng kí tự chữ cái khác nhau
Dòng 2 liệt kê các chữ cái khác nhau đó theo thứ tự từ điển tăng dần.
Ví dụ :
Input 01
10
2 8 T E C H t e c h
Output 01
4
c e h t
[Set & Map]. Bài 30. Tần suất số đẹp
Nộp bàiPoint: 2
Cho mảng A[] gồm N số nguyên, số đẹp là số chỉ bao gồm các chữ số 0, 2, 6, 8 theo quan niệm của 28Tech. Bây giờ bạn cần đếm xem mỗi số đẹp trong mảng A[] xuất hiện bao nhiêu lần và liệt kê theo thứ tự xuất hiện trong mảng.
Đầu vào
Dòng 1 là N : số lượng phần tử trong mảng
Dòng 2 gồm N số trong mảng A[]
Giới hạn
1<=N<=10^5
0<=A[i]<=10^18
Đầu ra
In ra các số đẹp xuất hiện trong mảng A[] kèm theo tần suất của nó
Ví dụ :
Input 01
6
22 66 88 22 11 3
Output 01
22 2
66 1
88 1
[Vector]. Bài 18. Hệ thập lục phân
Nộp bàiPoint: 2
Cho số N không âm 64 bit, bạn hãy in ra dạng thập lục phân của N. Bạn cần triển khai theo mã nguồn sau
vector<char> convert_number(long long n){
}
int main(){
int t; cin >> t;
while(t--){
long long n;
cin >> n;
vector<char> res = convert_number(n);
for(char x : res){
cout << x;
}
cout << endl;
}
return 0;
}
Đầu vào
• Dòng 1 là T : số test case
• T dòng tiếp theo mỗi dòng là số nguyên N
Giới hạn
• 1<=T<=1000
• 0<=N<=10^18
Đầu ra
• Đối với mỗi test in ra dạng thập lục phân của N
Ví dụ :
Input 01
10
264
25
23
338
259
318
481
136
207
8
Output 01
108
19
17
152
103
13e
1e1
88
cf
8
[Vector]. Bài 19. Nguyên tố & không nguyên tố
Nộp bàiPoint: 2
Cho 1 dãy số có không quá 10k số nguyên, bạn hãy lọc ra các số nguyên tố trong dãy và in theo thứ tự xuất hiện từ cuối về, và các số không nguyên tố thì bạn in theo thứ tự xuất hiện.
Ví dụ : dãy số : 1 3 2 7 8 10 2 thì bạn cần in các số nguyên tố theo thứ tự ngược là 2 7 2 3, các số không nguyên tố là 1 8 10
Gợi ý : Để đọc hết mọi số trong luồng input bạn sử dụng vòng lặp sau
int n;
while(cin >> n){
//Xử lý n đọc được
}
Đầu vào
Gồm nhiều dòng, mỗi dòng gồm nhiều số
Giới hạn
Có không quá 10k số, các số xuất hiện trong dãy là số int
Đầu ra
Dòng 1 in ra các số nguyên tố theo thứ tự xuất hiện ngược từ cuối về
Dòng 2 in ra các số không phải là số nguyên tố theo thứ tự xuất hiện
Ví dụ :
Input 01
19
12 12 16
5 17 2
12
3 14
11 12 14
15 12
Output 01
11 3 2 17 5 19
12 12 16 12 14 12 14 15 12