C. Serenity(Serenity)

    Type: Default File IO: Serenity 1000ms 512MiB

Serenity(Serenity)

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

给定一个字符串 SS = s1s2...sns_1s_2...s_n,定义其翻转区间 [l,r][l,r]1lrS1 ≤ l ≤ r ≤ |S|)后得到的字符串为 SS^′ = $s_1s_2...s_{l−1}s_rs_{r−1} ...s_{l+1}s_ls_{r+1} ...s_n$。

SS 翻转任意一个区间可以得到的不同的字符串数量。

输入格式

从文件 serenity.inserenity.in 中读入数据。

一行一个字符串 SS

输出格式

输出到文件 serenity.outserenity.out 中。

一行一个非负整数表示答案。

样例 1 输入

abcd

样例 1 输出

7

样例 1 解释

共有 1010 种不同的翻转方法:

  1. 翻转区间 [1,1][1,1],得到 abcdabcd

  2. 翻转区间 [2,2][2,2],得到 abcdabcd

  3. 翻转区间 [3,3][3,3],得到 abcdabcd

  4. 翻转区间 [4,4][4,4],得到 abcdabcd

  5. 翻转区间 [1,2][1,2],得到 bacdbacd

  6. 翻转区间 [2,3][2,3],得到 acbdacbd

  7. 翻转区间 [3,4][3,4],得到 abdcabdc

  8. 翻转区间 [1,3][1,3],得到 cbadcbad

  9. 翻转区间 [2,4][2,4],得到 adcbadcb

  10. 翻转区间 [1,4][1,4],得到 dcbadcba

可以得到的字符串为:abcdbacdacbdabdccbadadcbdcbaabcd,bacd,acbd,abdc,cbad,adcb,dcba,共 77 种。

样例 2

见右侧文件下的 serenity2.inserenity2.inserenity2.ansserenity2.ans

数据范围与提示

对于所有测试数据,保证 1S3×1061≤|S|≤3×10^6,保证 SS 中仅包含英文小写字母。

每个测试点的具体限制见下表:

测试点编号 S|S|≤ 特殊性质
11 3030
242∼4
55 300300
686∼8
99 30003000
101210∼12
1313 3×1053×10^5
141614∼16
1717 3×1063×10^6
182018∼20

NOIp4 模拟赛

Not Attended
Status
Done
Rule
IOI
Problem
4
Start at
2024-11-28 19:00
End at
2024-11-28 21:00
Duration
2 hour(s)
Host
Partic.
9