求 hack
查看原帖
求 hack
406941
Register_int-std=c++14楼主2023/11/14 19:04

rt,用可行性 dp 转移,不知道哪里寄了,求个 hack。

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

const int MAXN = 3e2 + 10;

int n, m; char s[MAXN];

bool f[MAXN][MAXN]; int dp[MAXN];

int main() {
	scanf("%s%d", s + 1, &m), n = strlen(s + 1);
	for (int i = 1; i <= n; i++) f[i][i - 1] = 1;
	for (int len = 2; len <= n; len++) {
		for (int l = 1, r = len; r <= n; l++, r++) {
			if (f[l + 1][r - 1] && s[l] == 'o' && s[r] == 'f') {
				for (int i = r; i <= r + m && i <= n; i++) f[l][i] = 1;
			}
			for (int i = l; i < r; i++) f[l][r] |= f[l][i] && f[i + 1][r];
		}
	}
	for (int i = 1; i <= n; i++) {
		dp[i] = dp[i - 1] + 1;
		for (int j = 1; j <= i; j++) if (f[j][i]) dp[i] = min(dp[i], dp[j - 1]);
	}
	printf("%d", dp[n]);
}
2023/11/14 19:04
加载中...