请问CF1791D为什么超时了?
总时间复杂度不是不超过2⋅105么……
#include<bits/stdc++.h>
using namespace std;
int flag[166];
int pre[200010],suf[200010];
int f(string s) {
memset(flag,0,sizeof(flag));
int cnt = 0;
for (unsigned i = 0;i < s.size();i ++) {
if (!flag[(int)s[i]])
flag[(int)s[i]] = 1,cnt ++;
}
return cnt;
}
int main(){
int T;
cin >> T;
while (T --) {
int n,maxn = 0;
cin >> n;
string s;
cin >> s;
for (int i = 0;i < n;i ++) {
string prefix = s.substr(0,i);
string suffix = s.substr(i,n - i);
pre[i] = f(prefix);
suf[i] = f(suffix);
}
for (int i = 0;i < n;i ++) {
maxn = max(maxn,pre[i] + suf[i]);
}
cout << maxn << endl;
}
return 0;
}