纯净之力
P4759. 纯净之力
场次:2026年4月11日-开发岗 · 来源:CodeFun2000 P4759
题目描述
定义一个由小写字母组成的字符串的纯净子串为:所有字符互不相同的子串。
字符串的纯净力定义为:该字符串中长度最大的纯净子串的数量(按起始位置计数,不同起始位置视为不同子串)。
现在给定两个正整数 和 ,请你构造一个长度恰好为 的、仅由小写字母组成的字符串,使其纯净力恰好等于 。如果无法构造,请输出 。
数据范围: 不超过 , 不超过 ,所有数均为正整数。
输入格式
输入仅一行,包含两个整数 和 ,中间用空格隔开。
输出格式
若存在满足要求的字符串,输出该字符串;否则输出 。答案不唯一时,输出任意一个合法字符串即可。
示例
示例 1
输入:
1 1输出:
a说明:
字符串长度 ,纯净力要求 ,此时 。
构造全 'a' 字符串 "a",其所有子串均为 "a",最大纯净子串长度为 1,且只有 1 个这样的子串,纯净力恰好为 1。
这是最小的边界情况。
示例 2
输入:
6 6输出:
aaaaaa说明:
字符串长度 ,纯净力 ,满足 。
构造全 'a' 字符串 "aaaaaa",所有字符相同,任意子串均不包含两个不同字符,因此最大纯净子串长度为 1。长度为 1 的纯净子串共有 6 个,起始位置分别为 1~6,纯净力等于 6。
当 时,全相同字符是最直接的构造。
示例 3
输入:
5 2输出:
abaaa说明:
字符串长度 ,纯净力 ,这里 。
先交替放置前 个字符,得到 "aba";剩余 个字符全部用最后一个字符 'a' 填充,最终得到 "abaaa"。
该字符串中最大纯净子串的长度为 2(只有 'a' 和 'b' 两种字母)。相邻不同字符的对有:位置 1 的 "ab" 和位置 2 的 "ba",共 2 个长度为 2 的纯净子串。因此纯净力为 2,符合要求。
示例 4
输入:
4 3输出:
abab说明:
字符串长度 ,纯净力 , 且 。
交替放置前 个字符,得到 "abab",正好用完所有长度。此时相邻不同字符对为:"ab"(位置 1)、"ba"(位置 2)、"ab"(位置 3),共 3 个长度为 2 的纯净子串。
最大纯净子串的长度为 2,数目恰好为 3,纯净力等于 。