#B3773. 完美字符串(Perfect String)

0

完美字符串(Perfect String)

完美字符串(Perfect String)

题目描述

你可能见过下面这一句英文:

"The quick brown fox jumps over the lazy dog."

短短的一句话就包含了所有 2626 个英文字母!因此这句话广泛地用于字体效果的展示。更短的还有:

"The five boxing wizards jump quickly."

所以你很好奇:还有没有更多这样包含所有 2626 个英文字母的句子?于是你用爬虫在互联网上爬取了许多英文文本,并且提取出了其中的单词。你现在希望从一个很长的单词序列中找出一段连续出现的单词,它满足:

  • 所有 2626 个英文字母都至少出现一次;
  • 长度尽可能短,即包含的字母总数尽可能少。

输入格式

输入的第一行包含一个整数 nn,代表单词序列的长度,即单词的数量。

输入的第二行包含 nn 个空格分隔的英文单词(单词仅由小写字母构成)。输入数据保证每个小写英文字母都至少出现一次。

输出格式

输出一行一个整数,是你找到的单词序列中的字母总数。

样例输入 #1

13
there is a quick brown fox jumping over the lazy dog and cat

样例输出 #1

37

数据范围

最短满足条件的单词序列是 "is a quick brown fox jumping over the lazy dog",共有 3737 个字母。

对于 40%40\% 的数据,满足 n≤100n\leq 100;
对于 100%100\% 的数据,满足 1≤n≤100,0001\leq n\leq 100,000。每个单词的长度不超过 1010 个字符,且单词全部由小写英文字母 a-z\texttt{a-z} 构成。

知识点与难度

本题涉及的知识点从属于 CSP-J,难度(CF Rating):1300。


测试点分布

Subtask 分值 测试点编号 说明
0 10 1 样例
1 20 2~7 小规模 n≤100 / 特殊: 恰好26个单字母单词答案26 / 特殊: 单个词内部重复字母计数防错
2 8~13 中等规模 n≤5000 / Hack: 词数更少但总字母数更多 vs 词数更多但总字母数更少的贪心陷阱
3 25 14~19 大规模 n=50000 双指针滑动窗口最小字母总和检验
4 20~25 满规模 n=100000 稀有字母远距分布极限压力测试

出处:原题链接