Đếm Số Có Tích Chữ Số Không Vượt Quá K

Xem dưới dạng PDF

Gửi bài giải


Điểm: 100
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

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

Tý cần giải bài toán sau:

Hương có một trò chơi với những con số. Cô ấy viết một số nguyên dương lên bảng, rồi tính tích các chữ số của nó. Ví dụ, với số \(36\), tích các chữ số là \(3 \times 6 = 18\).

Hương muốn đếm xem trong đoạn \([L, R]\) có bao nhiêu số mà tích các chữ số của nó không vượt quá \(K\).

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

  • Dòng đầu chứa số nguyên \(N\) và \(Q\) (\(N, Q \le 10^5\)).
  • \(N-1\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(u, v\) mô tả một cạnh.

Định dạng đầu ra

  • In ra kết quả của từng truy vấn trên một dòng.

Ví dụ

Input:

5 3
1 2
1 3
2 4
2 5
2 3

Output:

3

Input

  • Một dòng duy nhất chứa ba số nguyên \(L, R, K\) (\(0 \le L \le R \le 10^{18}\), \(1 \le K \le 1000\)).

Output

  • Một số nguyên duy nhất là số lượng số thỏa mãn.

Ví dụ

Ví dụ 1
Input:
1 30 10
Output:
16

Giải thích: Các số thỏa mãn là \(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,20\).

Ví dụ 2
Input:
10 50 5
Output:
11

Subtask

Subtask \(L, R\) \(K\) Điểm
1 \(L, R \le 10^3\) \(K \le 10\) 20
2 \(L, R \le 10^6\) \(K \le 100\) 20
3 \(L, R \le 10^{12}\) \(K \le 500\) 30
4 \(L, R \le 10^{18}\) \(K \le 1000\) 30

Nhận xét

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