AT4691题解
Yukinoshita_Yukino · · 题解
一句话题意:给定一个长度为
答案子串的长度是一定小于等于原字符串中字符种类数的。
先看一眼样例字符串: abcd
我们可以画一个图感受一下:
上图四个方格代表可以放字符的地方(也可以不放)。方格下面的数代表此方格的情况数。在这个样例中有两种情况,放或者不放,所以情况数是2。
更普遍的,如果有
PS:十年OI一场空,不开longlong见祖宗
代码:
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n;
int t[30];
char str[100010];
const int mod=1e9+7;
signed main()
{
cin>>n;
cin>>str;
for(int i=0;i<26;i++)
t[i]=1;
for(int i=0;i<n;i++)
t[str[i]-'a']++;
int ans=1;
for(int i=0;i<26;i++)
{
ans*=t[i];
ans%=mod;
}
cout<<ans-1;
return 0;
}