- 帅泓宇 的博客
P3995题解
- @ 2026-5-5 16:49:53
前置:基础语法
最低所需知识点:基础数据结构
观察题目 简而言之就是算出有多少个字符串组合有多少个不相同的组合(组合里任意一个不同都算)
看到n<=1e5的数据暴力破解肯定TLE
想到万能的STL加上奇妙的"只包含小写字母"可以使用set来解这一道题
set可以自动去重加排序(因此你需要注意定义set是必须保证这种数据类型可以排序并有排序的方式)
当然 老登并未有这么好心 所以加了一组hack数据来卡掉普通set写法
这时"只包含小写字母"就有用了 我们可以在任意地方添加非小写字母的字符作为分隔符再加入set 这样即可避免set去掉错误的组合
当然 在oi比赛中建议这种分隔符长一点好 特别是某些出题组名字里有特殊符号来恶心人的./ 但任然避免不了错误的可能
set的用法是
变量名.insert(A);
插入A
变量名.size();
输出变量名的大小 也就是有多少个不一样的内容
所以更推荐pair pair的用法和set差不多 不再过多介绍