0分玄关求助
查看原帖
0分玄关求助
1097177
longhaoyuan楼主2024/9/12 19:17

按照 Danhengyinyue 大神的方法写挂了,tql帮忙调一下。 code:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double dbl;

int n, m;
int a[25], p[25]; string s;
int ans;

inline bool abc(int i){
	return s.substr(i, 3) == string("abc");
}

int main(){
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) scanf("%d", a+i);
	for (int i = 1; i <= n; i++)
		for (int j = max(i - n, 0); j < i; j++)
			p[i] = max(p[i], a[i-j] + p[j]);
	
	scanf("%d", &m);
	cin >> s;
	int cnt = 0;
	for (int i = 0; i < m - 2;){
		if (abc(i)){
			cnt++;
			i += 3;
		}
		else{
			ans += p[cnt];
			cnt = 0;
			i++;
		}
	}
	ans += p[cnt];
	printf("%d\n", ans);
    return 0;
}
2024/9/12 19:17
加载中...