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

Gấu và phép nén xâu

Đề bài

Mô tả

Cho bảng chữ cái chỉ gồm sáu chữ cái đầu tiên: a, b, c, d, e, f.

Bạn được cho q phép biến đổi. Phép thứ i gồm một xâu ai độ dài 2 và một xâu bi độ dài 1. Không có hai phép nào có cùng ai.

Với một xâu s, bạn có thể áp dụng phép thứ i nếu hai ký tự đầu tiên của s đúng bằng ai. Khi áp dụng, hai ký tự đầu của s bị xóa và thay bằng ký tự bi. Như vậy mỗi lần áp dụng phép biến đổi làm độ dài của s giảm đúng 1.

Các phép có thể được áp dụng theo thứ tự bất kỳ và mỗi phép có thể dùng nhiều lần. Với một số xâu, đến một lúc nào đó không thể rút gọn thêm được vì hai ký tự đầu không khớp với bất kỳ ai nào.

Ta muốn bắt đầu từ một xâu độ dài n (chỉ gồm sáu chữ cái trên) và thực hiện đúng n1 phép để cuối cùng thu được xâu một ký tự "a". Hỏi có bao nhiêu xâu ban đầu độ dài n mà từ đó có thể rút gọn về "a"?

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nq.
  • q dòng tiếp theo, mỗi dòng chứa xâu ai (độ dài 2) và xâu bi (độ dài 1), cách nhau bởi dấu cách.

Dữ liệu ra

In ra một số nguyên: số lượng xâu độ dài n mà có thể rút gọn về "a".

Ràng buộc

  • 2n6
  • 1q36
  • |ai|=2, |bi|=1; tất cả ai đôi một khác nhau.
  • Mọi ký tự trong aibi đều thuộc {a, b, c, d, e, f}.

Ví dụ

Input Output Giải thích
3 5
ab a
cc c
ca a
ee c
ff d
4 Bốn xâu độ dài 3 rút gọn được về "a": abb, cab, cca, eea. Ví dụ abb rút gọn nhờ phép ab a hai lần: abb thành ab, rồi ab thành a.
2 8
af e
dc d
cc f
bc b
da b
eb a
bb b
ff c
1 Chỉ xâu eb rút gọn được về "a" bằng phép eb a.
6 2
bb a
ba a
0 Không có xâu độ dài 6 nào rút gọn được về "a".

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0