双倍失败
  • 板块P1714 切蛋糕
  • 楼主lizishi
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/6 11:32
  • 上次更新2024/8/6 12:46:41
查看原帖
双倍失败
1165586
lizishi楼主2024/8/6 11:32

双倍 经验 失败

编号编号#1\#1#2\#2
代码代码代码1代码1代码2代码2
算法算法强行遍历强行遍历贪心贪心
时间复杂度时间复杂度O(n2)O(n^2) ! !O(n)O(n) ✔ ✔
ErrorsErrors#4\#4 TLE,#5TLE,\#5 TLETLE#2\#2 WA,#3WA,\#3 WAWA
成绩成绩767676(Draw!)76(Draw!)
代码1
#include <iostream>
#include <deque>

using namespace std;

int main() {
    int n, k;
    cin >> n >> k;
    int a[n] = {0};
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    int max = -1;
    while (k) {
        int sum = 0;
        for (int i = 0; i < k; i++) {
            sum += a[i];
        }
        if (max < sum) max = sum;
        for (int i = k; i < n; i++) {
            sum += a[i];
            sum -= a[i - k];
            if (max < sum) max = sum;
        }
        k--;
    }
    cout << max;
    return 0;
}
代码2
#include <iostream>
#include <deque>
using namespace std;

deque < int > q;

int main() {
    int n, m;
    cin >> n >> m;
    int sum = 0, max = 0;
    int len = 0;
    int val;
    for (int i = 1; i <= n; i++) {
        cin >> val;
		sum += val;
        q.push_back(val);
        len++;
        if (len > m) {
            len--;
            sum -= q.front();
            q.pop_front();
        }
        if (sum > max) max = sum;
        if (sum < 0) {
            q.clear();
            sum = 0;
            len = 0;
        }
    }
    cout << max;
    return 0;
}

QwQQwQ lollol

trolltroll P:)P:) 6942069420

2024/8/6 11:32
加载中...