TLEoj Contest #03 - Bình phương giai thừa

Xem PDF

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})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

Không có bình luận nào.