A71311 | 字母项链(necklace)
来源编程题
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
小 W 有一个用大写字母串成的项链,有一天,他想把项链从中间某位置剪断,拉成一条直线后形成一个线性的字母串,其价值为每个字母的字典序位置 \times 位置号的和。
所谓字典序位置指该字母在 26 个字母表中排在第几个位置;位置号指该字母在字符串中排在第几个位置。
现在的问题是:该从哪里截断,才能让这个线性串的价值最大?
如:WJOI 组成的项链,
,可能的截断后的线性串有:
IW 中间截断,拉直后是 WJOI,价值为:23 \times 1+10 \times 2+15 \times 3+9 \times 4=124。
JO 中间截断,拉直后是 OIWJ,价值为: 15 \times 1+9 \times 2+23 \times 3+10 \times 4=142。
WJ 中间截断,拉直后是 JOIW,价值为:10 \times 1+15 \times 2+9 \times 3+23 \times 4=159。
OI 中间截断,拉直后是 IWJO,价值为:9 \times 1+23 \times 2+10 \times 3+15 \times 4=145。
其中最大的价值为:159。
输入格式
一个只包含大写英文字母的字符串,最大长度不超过 100000。
输出格式
一个整数,表示最大的价值。
输入输出样例
输入 #1
WJOI
输出 #1
159
【数据范围】
10\% 的数据,串长=1。
另外 10\% 的数据,串长=2。
50\% 的数据,串长≤1000。
100\%的数据:1≤串长≤100000。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?