CSP-202112-1-序列查询
提示:若存在区间[i,j) 满足:f(i)=f(i+1)=…=f(j-1),使用乘法运算 f(i)x(j-i)代替将 f()到 f(j- 1)逐个相加,或可大幅提高算法效率。
- 一定要看提示!单纯的模拟时间会超限!算法也是根据提示设计的。
#include <iostream>
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;
}