Codeforces 601B Lipshitz Sequence(高效)
来源:互联网 发布:数据库substr 编辑:程序博客网 时间:2024/06/07 16:22
题目链接:Codeforces 601B Lipshitz Sequence
代码
#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>using namespace std;const int maxn = 1e5 + 5;typedef long long ll;int N, M, A[maxn], L[maxn], R[maxn];int S, T[maxn], P[maxn];void init () { scanf("%d%d", &N, &M); for (int i = 1; i <= N; i++) scanf("%d", &A[i]); S = 0; for (int i = 2; i <= N; i++) { int tmp = abs(A[i] - A[i-1]); while (S && T[S-1] <= tmp) S--; L[i] = S ? P[S-1] : 0; T[S] = tmp; P[S] = i; S++; } S = 0; for (int i = N; i > 1; i--) { int tmp = abs(A[i] - A[i-1]); while (S && T[S-1] < tmp) S--; R[i] = S ? P[S-1]-1 : N; T[S] = tmp; P[S] = i; S++; }}void solve () { int l, r; while (M--) { scanf("%d%d", &l, &r); ll ans = 0; for (int i = l + 1; i <= r; i++) { ll tmp = abs(A[i] - A[i-1]); ans += tmp * (i - max(l, L[i])) * (min(r, R[i]) - i + 1); } printf("%lld\n", ans); }}int main () { init(); solve(); return 0;}
0 0
- Codeforces 601B Lipshitz Sequence(高效)
- codeforces 601B Lipshitz Sequence
- Codeforces 601B Lipshitz Sequence
- CodeForces 601B Lipshitz Sequence (单调队列)
- 【单调栈】Codeforces 601B Lipshitz Sequence
- Code Forces 601 B. Lipshitz Sequence(单调栈)
- CF 601B(Lipshitz Sequence-贪心)
- Lipshitz Sequence Codeforces Round #333 (Div. 1) B(单调栈)
- 【codeforces 602D】Lipshitz Sequence
- codeforces 602 D. Lipshitz Sequence
- Codeforces Round #333 D. Lipshitz Sequence (单调栈)
- codeforces 602 D. Lipshitz Sequence (单调栈)
- Codeforces Round #333 Lipshitz Sequence 优先队列
- Codeforces 620D Lipshitz Sequence RMQ+二分
- Codeforces Round #333 (Div. 2) D. Lipshitz Sequence (单调栈)
- Codeforces Round #333 (Div. 2)-D Lipshitz Sequence(单调栈)
- Codeforces 602D Lipshitz Sequence【思维+斜率单调栈】
- [CF601B]Lipshitz Sequence
- 获取股票简单数据:腾讯、新浪、东方财富。。。
- 枚举——POJ2965
- 仿InternetGetCookie自己解析Cookie文件
- java中的volatile关键字
- 树状数组求逆序对666
- Codeforces 601B Lipshitz Sequence(高效)
- 用sphinx_doc编写API文档
- Spark编程指南(Python版)
- 使用HttpURLConnection实现文件下载
- ==和equals的区别
- 矩阵的操作
- 南大软院大神养成计划——第十八天
- jQuery scrollTo
- chrome开发者工具功能拾遗:Sources面板篇