Dãy cấp số nhân (THT-B-2022)

Xem dưới dạng PDF

Gửi bài giải

Điểm: 10
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Kiểu bài tập

Cho dãy gồm n số nguyên dương \(a_1, a_2, ... a_n\). Dãy số \(b_1, b_2, ... b_k\) được gọi là dãy cấp số nhân công bội \(q\) khi và chỉ khi \(b_{i+1} = b_i \times q\) với mọi \(1 \le i \lt k\).

Yêu cầu: Cho số nguyên \(q\), với mỗi \(k (1 \lt k \le n)\), hãy đếm số dãy con (không nhất thiết liên tiếp) độ dài \(k\) của dãy \(a_1, a_2, ... a_n\) là dãy cấp số nhân công bội \(q\).

Dữ liệu:

  • Dòng đầu tiên gồm hai số nguyên \(n, q (1 \le n \le 10^5; 2 \le q \le 10^9)\)
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, ..., a_n (1 \le a_i \le 10^9)\)

Kết quả: Một dòng gồm \(n-1\) số nguyên, số thứ \(s (1 \le s \lt n)\) là số dãy con độ dài \((s+1)\) là dãy cấp số nhân công bội \(q\) chia dư cho \((10^9 + 7)\)

Ràng buộc:

  • 25% số test ứng với 25% số điểm của bài thỏa mãn: \(n \le 20\)
  • 25% số test ứng với 25% số điểm của bài thỏa mãn: \(n \le 100\)
  • 25% số test ứng với 25% số điểm của bài thỏa mãn: \(n \le 1000\)
  • 25% số test ứng với 25% số điểm của bài không có ràng buộc gì thêm

Input

5 2
1 2 8 4 2

Output

3 1 0 0

Nhận xét

Không có ý kiến tại thời điểm này.