[THHV 2017 - CHL - 11] Bài 2: Tứ giác lớn nhất

Xem dạng PDF

Gửi bài giải

Điểm: 10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Cho 2 xâu ~S~ và ~T~. Ta định nghĩa xâu con của ~S~ là xâu con gồm các kí tự liên tiếp trong ~S~. Gọi ~p~ là số xâu con không gối lên nhau lớn nhất có thể lấy được từ xâu ~S~ sao cho các xâu con này đều bằng ~T~. Ví dụ ta có xâu ~S = “aaaaa”~, ~T = “aa”~, khi đó ~p = 2~.

Ta định nghĩa hàm ~C(k)~ là số cách cắt từ xâu ~S~ ra ~k~ xâu con không gối lên nhau sao cho các xâu con này đều bằng ~T~. Trong ví dụ trên ta có: ~C(1) = 4~: |aa|aaa, a|aa|aa, aa|aa|a, aaa|aa| ~C(2) = 3~: |aa||aa|a, |aa|a|aa|, a|aa||aa|

Hãy tính ~C(1) + C(2) + \dots + C(p)~.

Yêu cầu: Tính tổng số cách chọn ~k~ xâu con không gối lên nhau bằng ~T~ với mọi ~k~ từ 1 đến ~p~.

Input

  • Dòng đầu tiên chứa xâu ~S~ (~1 \le |S| \le 3 \times 10^5~).
  • Dòng thứ hai chứa xâu ~T~ (~1 \le |T| \le |S|~).

Output

  • Ghi ra một dòng duy nhất là kết quả của bài toán. Do kết quả có thể rất lớn nên bạn cần ghi ra phần dư trong phép chia kết quả cho ~10^9 + 7~.

Sample Input 1

heknowsimeanityeahyouknowimeanityouknow
imeanit

Sample Output 1

3

Sample Input 2

aaaaa
aa

Sample Output 2

7

Bình luận

Hãy đọc nội quy trước khi bình luận.


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