Phân nhóm (HSG 15-16)

Xem dạng PDF

Gửi bài giải

Điểm: 5,00
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài

Phân tích nhóm (phân nhóm, chia nhóm) là công việc phân chia các phần tử trong một tập hợp thành một hoặc nhiều nhóm mà trong đó, các phần tử trong cùng một nhóm sẽ giống nhau hơn so với phần tử thuộc nhóm khác.

Yêu cầu: Cho một tập N số nguyên dương và một số nguyên dương K, nhiệm vụ của bạn là đếm xem có bao nhiêu nhóm. Biết rằng 2 phần tử được xếp chung nhóm với nhau nếu như chênh lệch giữa chúng không vượt quá K.

Giải thích: Với tập N = 7 số nguyên dương: 2, 6, 1, 7, 3, 4, 9 và K = 1 thì ta sẽ có các mối quan hệ sau:

 - 2 và 1 chung một nhóm (chênh lệch giữa chúng là 1, không vượt quá K)
 - 2 và 3 chung một nhóm
 - 6 và 7 chung một nhóm
 - 3 và 4 chung một nhóm

Vậy ta sẽ có 3 nhóm: {1, 2, 3, 4}, {6, 7} và {9}

Dữ liệu vào: 

- Dòng đầu tiên chứa số nguyên T – là số bộ test cần kiểm tra (T ≤ 20).
- Các dòng tiếp theo chứa T bộ test, mỗi bộ test gồm 2 dòng:

+ Dòng đầu trong mỗi bộ test chứa 2 số nguyên dương NK (1 ≤ N ≤ 105, 1 ≤ K ≤ 106) cách nhau ít nhất 1 dấu cách.
+ Dòng thứ hai trong mỗi bộ test chứa N số nguyên dương – là các phần tử của tập hợp (giá trị không vượt quá 106).

Kết quả:

Gồm T dòng, mỗi dòng chứa một số nguyên dương là số nhóm tương ứng của mỗi bộ test.

Sample input

3
7 1
2 6 1 7 3 4 9
7 2
2 6 1 7 3 4 9
5 5
15 1 20 4 17

Sample output

3
1
2

Đề HSG lớp 9 TPĐN 2015-2016


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.