canuc80k1300·1/50

Dấu Vết 4 Và 9

Nộp bài trên LQDOJ

Bài 13 · Digit DP

Trong biểu diễn thập phân chuẩn của một số, các số ở đầu không được xem là chữ số của số đó.

Cho đoạn số nguyên đóng . Hãy đếm các số trong đoạn có ít nhất một chữ số bằng hoặc .

Input

  • Một dòng chứa hai số nguyên và .

Output

  • In số lượng số thỏa mãn trong đoạn .

Constraints

  • .

Scoring

  • Subtask ( điểm): .
  • Subtask ( điểm): Không có giới hạn bổ sung.

Example

Test 1

Input

39 45

Output

7

Giải thích: Các số đều chứa ít nhất một chữ số hoặc , nên cả bảy số trong đoạn đều được tính.

Lời giải tóm tắt
  • Ý tưởng: Dùng hàm tiền tố F(X) đếm các số trong [0,X]. Digit DP duyệt từ trái sang phải với hai cờ: tiền tố còn bằng X hay không và đã gặp chữ số 4/9 hay chưa. Đáp án là F(B)-F(A-1).
  • Tính đúng đắn: Ta chứng minh theo thứ tự các vị trí được duyệt. Ở mỗi trạng thái, các thành phần của trạng thái lưu đúng toàn bộ thông tin về tiền tố đã chọn có thể ảnh hưởng đến phần còn lại. Mỗi chữ số hoặc bit hợp lệ tiếp theo được xét đúng một lần, đồng thời điều kiện giới hạn bảo đảm tiền tố không vượt cận đang đếm. Vì thế mọi giá trị hợp lệ xuất hiện đúng một đường đi và mọi đường đi được cộng đều tương ứng với một giá trị hợp lệ. Khi dùng hiệu hai hàm tiền tố, mỗi phần tử trong đoạn đóng được tính đúng một lần.
  • Độ phức tạp: O(L·10) thời gian và O(1) bộ nhớ, với L là số chữ số của B.
  • Ý tưởng: Duyệt từng số trong đoạn và tìm ký tự 4 hoặc 9 trong chuỗi thập phân.
  • Điểm dễ sai: tính đúng F(A-1)
  • Điểm dễ sai: cập nhật cờ khi gặp 4 hoặc 9
  • Điểm dễ sai: xử lý đầu mút của đoạn