社区讨论

样例都过了,但是全WA(讲懂可关)

P14075[GESP202509 六级] 划分字符串参与者 2已保存回复 10

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
10 条
当前快照
1 份
快照标识符
@mjmvvtom
此快照首次捕获于
2025/12/26 21:04
2 个月前
此快照最后确认于
2025/12/28 16:20
2 个月前
查看原帖
0分代码:
CPP
#include <iostream>
#define N 100010
using namespace std;
char c[N];
int dp[50];
int a[N];
bool dic[50];
int main() {
    int n;
    cin >> n;
    for(int i = 1; i <= n; i++){
        cin >> c[i];
    }
    for(int i = 1; i <= n; i++){
        cin >> a[i];
    }
    for(int i = 1; i <= n; i++){
        for(int j = i; j <= 26; j++){
            dp[j] = max(dp[j], dp[j - i] + a[i]);
        }
    }
    int i = 1;
    long long total = 0;
    while(i <= n){
        memset(dic, false, sizeof(dic));
        int count = 0;
        int k = i;
        while(k <= n && !dic[int(c[k] - 'a')]){
            dic[int(c[k] - 'a')] = true;
            count++;
            k++;
        }
        i = k;
        total += dp[count];
    }
    cout << total << endl;
    return 0;
}

讲懂了无条件关注。(讲明我的思路或代码为什么有问题,而不是仅仅提供一种新思路)。

回复

10 条回复,欢迎继续交流。

正在加载回复...