CSP-202112-1-序列查询

CSP-202112-1-序列查询

提示:若存在区间[i,j) 满足:f(i)=f(i+1)=…=f(j-1),使用乘法运算 f(i)x(j-i)代替将 f()到 f(j- 1)逐个相加,或可大幅提高算法效率。

  • 一定要看提示!单纯的模拟时间会超限!算法也是根据提示设计的。
#include 
using namespace std;
int main() {
    long long n, N, sum = 0;
    cin >> n >> N;
    long long b = 0;

    int i = 0;
    for (i; i < n; i++)
    {
        long long a;
        cin >> a;
        sum += (a - b) * i;
        b = a;
    }

    sum += (N - b) * i;
    cout << sum << endl;
    return 0;
}

请添加图片描述

你可能感兴趣的:(算法,c++)