CF水题求助
  • 板块题目总版
  • 楼主WD2c0mP
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/3/4 21:54
  • 上次更新2023/10/23 23:03:06
查看原帖
CF水题求助
780641
WD2c0mP楼主2023/3/4 21:54

请问CF1791D为什么超时了?

总时间复杂度不是不超过21052 \cdot 10^5么……

#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;
}
2023/3/4 21:54
加载中...