最后三个点TLE了,请问dalao们这代码有能改进一下的地方嘛?
查看原帖
最后三个点TLE了,请问dalao们这代码有能改进一下的地方嘛?
52067
HITACorz楼主2021/3/15 14:22
#include <iostream>
#include<algorithm>
#include <iomanip>

using namespace std;
int Rd[100010];

//跳跃函数,返回第一个正数
//现在是返回的第一个为0 的下标,不是此方法的目的
int jump(int n) {
    int flag = 0;
    for (int i = 0; i < n; i++) {
        if (Rd[i])
            return i;
    }
    return n;//结束后返回n
}

int main() {
    ios::sync_with_stdio(false);
    int n, i, j;
    cin >> n;
    for (i = 0; i < n; i++) {
        cin >> Rd[i];
    }
    int Day_num = 0;
    while (jump(n) != n) {
        j = jump(n);
        for (i = j; i < n; i++) {
            if (Rd[i]) {
                Rd[i]--;
            } else {
                break;
            }
        }
        Day_num++;
    }
    cout << Day_num;
    return 0;

}

思路就是从左往右遍历,首先找到有深度的坑,每次循环(每天)都从这开始往后找,只要有深度就填,直到碰到深度为0的坑为止。 但是最后三个点TLE了

2021/3/15 14:22
加载中...