(玄一关)是我写丑了还是真的被卡常了?
查看原帖
(玄一关)是我写丑了还是真的被卡常了?
958944
Union_Find楼主2024/10/2 23:29

RT

记录

#include <bits/stdc++.h>
using namespace std;
#define il inline
#define N 15000001
int n, f[N], t[82], cnt;
char s[N];
const int P = 998244353;
int main(){
	ios::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
	scanf ("%s", s + 1), n = strlen(s + 1);
	f[0] = 1;
	for (int i = 1, j = 1; i <= n; ++i){
		while (cnt && j < i){
			int p = s[j] - '0';
			for (int k = j + 1; k <= i; ++k){
				p += s[k] - '0';
				if ((t[p]--) == 2) --cnt;
			}++j;
		}
		int p = s[i + 1] - '0';
		for (int k = i; k >= j; --k){
			f[i] = f[i] + f[k - 1] > P ? f[i] + f[k - 1] - P : f[i] + f[k - 1];
			p += s[k] - '0';
			if ((++t[p]) == 2) ++cnt;
		}
	}cout << f[n];
	return 0;
}
2024/10/2 23:29
加载中...