trang chủ / bài tập / substnum

Thay thế chữ số

Đề bài

Mô tả

Cho một xâu s gồm các chữ số. Lần lượt thực hiện n truy vấn có dạng "dt", nghĩa là thay tất cả các chữ số d trong s bằng xâu t (xâu t có thể rỗng — khi đó mọi chữ số d đều bị xóa). Các truy vấn được thực hiện đúng theo thứ tự đã cho.

Sau khi áp dụng toàn bộ truy vấn, hãy xem s như biểu diễn thập phân của một số nguyên (bỏ qua các chữ số 0 ở đầu, và xâu rỗng được coi là số 0), rồi in ra phần dư của số đó khi chia cho 109+7.

Dữ liệu vào

  • Dòng đầu chứa xâu s gồm các chữ số.
  • Dòng thứ hai chứa số nguyên n — số lượng truy vấn.
  • n dòng tiếp theo, mỗi dòng có dạng d->t, trong đó dđúng một chữ số (từ 0 đến 9) và t là xâu gồm các chữ số (có thể rỗng).

Dữ liệu ra

Một số nguyên duy nhất — kết quả mod 109+7.

Ràng buộc

  • 1|s|105.
  • 0n105.
  • Tổng độ dài các xâu t trên toàn bộ truy vấn không vượt quá 105.

Ví dụ

Input Output Giải thích
123123
1
2->00
10031003 Sau khi thay mọi chữ số 2 bằng "00", xâu trở thành "10031003".
123123
1
3->
1212 Xóa mọi chữ số 3, còn lại "1212".
222
2
2->0
0->7
777 Bước 1: "222" → "000". Bước 2: "000" → "777". Lưu ý các chữ số 0 ở đầu vẫn được tiếp tục thay thế.
1000000008
0
1 Không có truy vấn nào; 1000000008mod(109+7)=1.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0