Pre TS10 2023 #02 - Trọng số của xâu
Xem PDF
Nộp bài
Điểm:
1500 (thành phần)
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
STRW.inp
Output:
STRW.out
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, NASM, Pascal, pypy3, Python, text
Trọng số của một xâu s chỉ gồm các chữ cái trong bảng chữ cái tiếng Anh được tính bằng tổng các giá trị i^2 \times v_{s_i} với 1 \le i \le |s|, trong đó |s| là độ dài xâu s, s_i là ký tự thứ i của xâu s, v_{s_i} là vị trí của ký tự s_i trong bảng chữ cái.
Ví dụ, trọng số của xâu s = abca sẽ được tính như sau:
- Với i = 1, ta có 1^2 \times v_{s_1} = 1^2 \times 1 = 1.
- Với i = 2, ta có 2^2 \times v_{s_2} = 2^2 \times 2 = 8.
- Với i = 3, ta có 3^2 \times v_{s_3} = 3^2 \times 3 = 27.
- Với i = 4, ta có 4^2 \times v_{s_4} = 4^2 \times 1 = 16.
- Vậy trọng số của xâu s bằng 1 + 8 + 27 + 16 = 52.
Một xâu con liên tiếp của xâu t là xâu t khi xóa đi một số ký tự đầu và cuối (có thể không xóa ký tự nào), và giữ nguyên thứ tự của các ký tự còn lại. Ví dụ ab, bdc, abdc hay b là xâu con liên tiếp của abdc nhưng acd hay abc thì không.
Tính tổng trọng số của tất cả các xâu con liên tiếp của xâu t.
Input, Output và Subtasks
Input: (STRW.inp)
- Một dòng duy nhất gồm xâu t có độ dài không quá 2 \times 10^5.
Output: (STRW.out)
- Một dòng duy nhất là trọng số của xâu t. Vì kết quả có thể rất lớn nên bạn chỉ cần in ra trọng số sau khi đã chia lấy dư cho 10^9 + 7.
Subtasks
- Subtask 1 (30\%): Độ dài xâu t không vượt quá 200.
- Subtask 2 (35\%): Độ dài xâu t không vượt quá 2000.
- Subtask 3 (35\%): Độ dài xâu t không vượt quá 2 \times 10^5.
Sample
Input (STRW.inp)
abc
Output (STRW.out)
65
Note
- Các xâu
a,b,ccó trọng số lần lượt là 1, 2, 3. - Các xâu
ab,bccó trọng số lần lượt là 9, 14. - Xâu
abccó trọng số là 36.
Vậy tổng trọng số của các xâu con của xâu abc là 65.
Bình luận đầu tiên
Bình luận