0分求调
查看原帖
0分求调
1011794
gaogao05楼主2024/11/23 12:03
#include<bits/stdc++.h>
using namespace std;
int l[1000009], n[200009], t, p, sum;
int maxn[200009];
int main() {
    cin >> t;
    for (int lalala = 0; lalala < t; lalala++) {
        cin >> p;

        for (int i = 0; i < p; i++) {
            cin >> n[i];
        }
        memset(l, -1, sizeof(l));
        memset(maxn, 0, sizeof(maxn));
        l[n[0]] = 0;
        for (int i = 1; i < p; i++) {
            if (l[n[i]] == -1) {
                l[n[i]] = i;
            } else {
                sum = 0;
                for (int k = l[n[i]] + 1; k < i; k++) {
                    if (n[k] == n[k + 1]) {
                        sum += n[k];
                    }
                }
                maxn[i] = max(maxn[i - 1], maxn[l[n[i]]] + sum + n[i]);
            }
            if (i == p - 1) {
                cout << maxn[i] << endl;
            }
        }
    }
    return 0;
}

12WA,8TLE,求调

2024/11/23 12:03
加载中...