CF672B.Different is Good
入门
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
A wise man told Kerem "Different is good" once, so Kerem wants all things in his life to be different.
Kerem recently got a string s consisting of lowercase English letters. Since Kerem likes it when things are different, he wants all substrings of his string s to be distinct. Substring is a string formed by some number of consecutive characters of the string. For example, string "aba" has substrings "" (empty substring), "a", "b", "a", "ab", "ba", "aba".
If string s has at least two equal substrings then Kerem will change characters at some positions to some other lowercase English letters. Changing characters is a very tiring job, so Kerem want to perform as few changes as possible.
Your task is to find the minimum number of changes needed to make all the substrings of the given string distinct, or determine that it is impossible.
一位智者曾对克雷姆说:“与众不同是好的”,因此克雷姆希望他生活中的一切都各不相同。
克雷姆最近得到了一个由小写英文字母组成的字符串 s。由于克雷姆喜欢事物各不相同,他希望字符串 s 的所有子串互不相同。子串是指由字符串中若干连续字符构成的字符串。例如,字符串 "aba" 的子串有 ""(空子串)、"a"、"b"、"a"、"ab"、"ba"、"aba"。
如果字符串 s 中至少存在两个相等的子串,则克雷姆将把某些位置上的字符修改为其他小写英文字母。而修改字符是一项非常耗神的工作,因此克雷姆希望尽可能少地进行修改。
你的任务是:求出使给定字符串的所有子串互不相同所需的最少修改次数;若不可能实现,则判定其不可能。
输入格式
The first line of the input contains an integer n (1 ≤ n ≤ 100 000) — the length of the string s.
The second line contains the string s of length n consisting of only lowercase English letters.
输入的第一行包含一个整数 n(1 ≤ n ≤ 100000)——字符串 s 的长度。
第二行包含一个长度为 n 的字符串 s,仅由小写英文字母组成。
输出格式
If it's impossible to change the string s such that all its substring are distinct print -1. Otherwise print the minimum required number of changes.
如果无法通过修改字符串 s 使得其所有子串互不相同,则输出 −1;否则输出所需的最少修改次数。
输入输出样例
输入#1
2 aa
输出#1
1
输入#2
4 koko
输出#2
2
输入#3
5 murat
输出#3
0
说明/提示
In the first sample one of the possible solutions is to change the first character to 'b'.
In the second sample, one may change the first character to 'a' and second character to 'b', so the string becomes "abko".
在第一个样例中,一种可能的解法是将第一个字符改为 'b'。
在第二个样例中,可以将第一个字符改为 'a',第二个字符改为 'b',从而使字符串变为 "abko"。
输入解题思路,AI测评打分。不知道怎么写?