Nộp bài
Điểm:
1600 (thành phần)
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Tác giả:
Dạng bài
weqd gọi 1 số là bình phương giai thừa nếu nó có thể được viết dưới dạng (k!)^2.
Bạn được weqd cho bạn 1 dãy số a gồm n số nguyên không âm và 1 số nguyên dương k. Nhiệm vụ của bạn là đếm số lượng dãy p độ dài k (không nhất thiết liên tiếp) thỏa mãn:
- p là dãy con (không nhất thiết liên tiếp) của tập {1,2,\dots,n}
- Gọi A=(a_{p_1}+a_{p_2})\times (a_{p_1}+a_{p_2}+a_{p_3})\times \dots \times(a_{p_1}+a_{p_2}+\dots+a_{p_k}) và B=(\frac{1}{a_{p_1}}+\frac{1}{a_{p_2}})\times (\frac{1}{a_{p_1}}+\frac{1}{a_{p_2}}+\frac{1}{a_{p_3}})\times \dots \times(\frac{1}{a_{p_1}}+\frac{1}{a_{p_2}}+\dots+\frac{1}{a_{p_k}}) thì A\times B=(k!)^2
Vì kết quả có thể rất lớn nên bạn hãy xuất kết quả sau khi mod\ 10^9+7
Input, Output và Subtasks
Input
- Dòng thứ nhất gồm 1 số t là số testcase (1\le t\le 10)
- Sau đó là t block được định dạng như sau:
- Dòng đầu tiên gồm 2 số n,k (2\le k\le n\le 10^5)
- Dòng tiếp theo gồm n số a_1,a_2,\dots,a_n (0\le a_i\le 10^9)
Output
- Xuất ra t dòng, mỗi dòng là kết quả tương ứng trong từng testcase
Scoring
- Subtask 1 (20\%): n\le 16
- Subtask 2 (20\%): k=2
- Subtask 3 (20\%): k\le 100
- Subtask 4 (40\%): Không có ràng buộc gì thêm
Sample
Input
3
4 2
1 2 3 4
6 2
1 3 2 2 1 2
4 3
2 1 2 2
Output
0
4
1
Note
- Trong testcase 1, không có dãy nào thỏa mãn
- Trong testcase 2, các dãy thỏa mãn là: {1,5}; {3,4}; {3,6}; {4,6}
- Trong testcase 3, dãy thỏa mãn là {1,3,4}
Bình luận