Bài tập luyện tập sử dụng kiểu dữ liệu MAP - Khang

Liệt kê các phần tử kèm theo tần suất (map)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Nhập vào một mảng A gồm các số nguyên có N phần tử, in ra các phần tử theo thứ tự xuất hiện trong mảng a kèm theo tần suất của nó, mỗi giá trị chỉ in 1 lần.


Ràng buộc: ~0 < N \leq 10^6~; ~-10^6 \leq A[i] \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ử, dòng thứ 2 lần lượt là N phần tử trong mảng A.


Input 01:
10
5 1 4 1 3 2 1 2 3 10
Output 01:
5 1
1 3
4 1
3 2
2 2
10 1

Số 5 xuất hiện 1 lần, số 1 xuất hiện 3 lần, số 4 xuất hiện 1 lần...

Input 02:
11
5 -1 4 -1 3 2 1 2 3 10 10
Output 02:
5 1
-1 2
1 1
4 1
3 2
2 2
10 2

Xâu Pangram 1 (xâu ký tự - chuỗi ký tự - map)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Xâu Pangram là xâu có chứa đầy đủ các kí tự từ A tới Z không phân biệt chữ hoa hay thường. Nhập vào xâu S và kiểm tra xem xâu S có phải là xâu pangram hay không?


Ràng buộc: ~1≤len(S)≤100000~;


In ra YES nếu S là xâu pangram, ngược lại in NO.


Input:
abcdefghijklmnopqrstuvwxyz
Output:
YES

Từ xuất hiện nhiều nhất, ít nhất trong xâu (map - xâu ký tự - chuỗi ký tự)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho một xâu kí tự S bao gồm các chữ cái và dấu cách, một từ được định nghĩa là các kí tự liên tiếp không chứa dấu cách. Hãy tỉm từ có số lần xuất hiện nhiều nhất và ít nhất trơng xâu, nếu có nhiều từ có cùng số lần xuất hiện nhiều nhất hoặc ít nhất thì chọn từ có thứ tự từ điển lớn nhất làm kết quả


Ràng buộc: ~1 \leq len(s) \leq 100000~


Dòng đầu tiên in ra từ có số lẫn xuất hiện nhiều nhất. Dòng thứ 2 in ra từ có số lần xuất hiện ít nhất


Input:
aa bb cc aa bb aa aa cc
output:
aa 4
cc 2

Đếm số mảng con có tổng bằng X (stlm)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho một mảng gồm n số nguyên dương, nhiệm vụ của bạn là đếm số mảng con (dãy con các phần tử liên tiếp) có tổng bằng x.


Đầu vào: Dòng đầu tiên có hai số nguyên n và x: kích thước của mảng và tổng mục tiêu x. Dòng tiếp theo có n số nguyên a1, a2..., an: các phần tử trong mảng


Ràng buộc: 1 <= n <= 2.10^5; 1 <= x,ai <= 10^9


In một số nguyên: số lượng mảng con.


Input:
5 7
2 4 1 2 7
Output:
3

Đếm số mảng con (có thể có số âm) có tổng bằng X

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho một mảng gồm n số nguyên, nhiệm vụ của bạn là đếm số mảng con (dãy con các phần tử liên tiếp) có tổng bằng x.


Đầu vào: Dòng đầu tiên có hai số nguyên n và x: kích thước của mảng và tổng mục tiêu x. Dòng tiếp theo có n số nguyên a1, a2..., an: các phần tử trong mảng


1 <= n <= 2*10^5; -10^9 <= x, a i ≤ 10^9


Đầu ra: In một số nguyên là số lượng mảng con.


Input 01:
5 7
2 4 1 2 7
Output 01:
3
Input 02:
10 5
2 3 0 -1 1 4 1-2 2 7
Output 02:
10

Dãy con liên tiếp dài nhất có tổng chia hết cho K

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho mảng A có N phần tử và số nguyên dương K, hãy tìm dãy con liên tiếp dài nhất có tổng các phần tử chia kết cho K. In ra số lượng phần tử của dãy con liên tiếp dài nhất nếu tồn tại hoặc in ra -1 nếu không có dãy con nào chia hết cho K


Ràng buộc: ~1 \leq K \leq N \leq 10^6~; ~-10^6 \leq A[i] \leq 10^6~


Input:
12 2
-4 1 4 -1 4 4 -3 4 2 -4 2 4
Output:
10

Mảng con dài nhất mà mỗi phần tử chỉ xuất hiện 1 lần (sắp xếp - tìm kiếm)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Bạn được cung cấp một danh sách phát các bài hát của một đài phát thanh kể từ khi đài đó được thành lập. Danh sách bài hát có tổng cộng n bài hát. Hãy tìm danh sách con các bài hát liên tiếp dài nhất mà mỗi bài hát là duy nhất?


Đầu vào: Dòng đầu tiên chứa một số nguyên n là số lượng bài hát. Dòng tiếp theo có n số nguyên k1, k2,... kn là số id của mỗi bài hát.


Ràng buộc: 1≤n≤2.10^5; 1≤ki≤10^9


Đầu ra: In độ dài của chuổi bài hát dài nhất mà các bài hát này mỗi bài hát chỉ xuất hiện 1 lần.


Input:
5
1 2 3 4 5
Output:
5

Số xuất hiện nhiều nhất trong mảng (map)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Tìm số xuất hiện nhiều nhất trong mảng, nếu có nhiều số có cùng số lần xuât hiện nhiều nhất thì in ra số nhỏ hơn


Định dạng đầu vào:

Dòng đầu tiên là số lượng test case T. (1≤T≤100).

Mỗi test case bao gồm nhiều dòng, dòng đầu tiên là số lượng phần tử trong mảng. (1≤n≤100000).

Dòng thứ 2 bao gồm n phần tử trong mảng. (-10^18 <= ai <= a0^18).


Định dạng đầu ra: In ra số xuất hiện nhiều nhất cùng số lần xuất hiện của nó


Input:
1
10
1 1 2 2 2 1 4 7 8 19
Output:
1 3

Ký tự xuất hiện nhiều nhất (map)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Tìm kí tự xuất hiện nhiều nhất trong chuỗi. (làm bằng 2 cách: Sử dụng mảng đếm hoặc sử dụng map)


Định dạng đầu vào:

Dòng đầu tiên là số lượng test case T. (1≤T≤100).

Mỗi test case gồm một dòng là 1 chuỗi có không quá 100000 kí tự, bao gồm cả dấu cách


Định dạng đầu ra: Tìm kí tự có số lần xuất hiện nhiều nhất và có thứ tự từ điển nhỏ nhất


Input:
1
abcdzzzzu abed
Output:
z

Đếm số lượng từ khác nhau trong xâu - phiên bản nhập xâu trên một dòng (map)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho một xâu gồm nhiều từ, đếm số lượng từ khác nhau trong xâu (lưu ý các từ không phân biệt chữ hoa và chữ thường, không cho biết trước số lượng từ trong xâu, không sử dụng mảng string)


Ràng buộc: Số lượng từ có thể lên đến 1000 từ


Input:
hoc cong nghe day hoc cong nghe va lap trinh
Output:
7

Liệt kê và đếm (map)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho một dãy các số nguyên dương không quá 9 chữ số, mỗi số cách nhau vài khoảng trống, có thể xuống dòng. Hãy tìm các số không giảm (các chữ số theo thứ tự từ trái qua phải tạo thành dãy không giảm) và đếm số lần xuất hiện của các số đó.


Định dạng đầu vào: Gồm 1 dãy các số nguyên dương không quá 9 chữ số


Ràng buộc: Dãy không có quá 100000 số. Các số đều nguyên dương và không quá 9 chữ số.


Định dạng đầu ra: Ghi ra các số không giảm kèm theo số lần xuất hiện. Các số được liệt kê theo thứ tự sắp xếp số lần xuất hiện giảm dần. Trong trường hợp có nhiều số có cùng số lần xuất hiện thì thì số nhỏ hơn sẽ xếp trước.


Input:
888 289 123
321 54 888
Output:
888 2
123 1
289 1

Điểm trung bình (map)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Cho thông tin điểm thi của các môn học của các sinh viên, bạn hãy tính điểm trung bình của sinh viên đó và in ra màn hình. Điểm trung bình được tính bằng cách lấy tổng hệ số điểm và số tín chỉ chia cho tổng số tín chỉ. Ví dụ sinh viên X học môn A có 2 tín chỉ và có điểm là 5, môn B có 3 tín chỉ và có điểm là 4 thì điểm trung bình được tính = (2 * 5 + 3 * 4) / (2 + 3).


Định dạng đầu vào: Gồm nhiều dòng, mỗi dòng gồm 3 thông tin: Tên sinh viên (có 1 từ), số tín chỉ và điểm số tương ứng. Dữ liệu đảm bảo không có 2 sinh viên có cùng tên.


Ràng buộc: Điểm là số nguyên từ 0 tới 10, số tín chỉ là số nguyên dương


Định dạng đầu ra: In ra danh sách sinh viên theo thứ tự từ điển giảm dần và điểm trung bình lấy 2 số sau dấu phẩy.


Input 01:
linh 3 7
tuan 4 5
huyen 3 5
linh 4 9
tuan 5 4
huyen 3 6
Output 01:
tuan : 4.44
linh : 8.14
huyen : 5.50
Input 02:
Lan 4 8
Hanh 4 5
Lan 6 10
Phong 4 10
Nam 4 9
Phong 6 5
Lan 2 4
Phuong 6 1
Nhung 2 7
Nhung 6 9
Nhung 5 8
Nhung 4 10
Lan 3 1
Output 02:
Phuong : 1.00
Phong : 7.00
Nhung : 8.71
Nam: 9.00
Lan : 6.87
Hanh : 5.00