社区讨论
@lkrabc
灌水区参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lyeccvoa
- 此快照首次捕获于
- 2024/07/09 19:42 2 年前
- 此快照最后确认于
- 2024/07/09 19:42 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;int n,a[300005],dp[300005],top1,top2,stk1[300005],stk2[300005];int main(){scanf("%d",&n);for(int i = 1; i <= n; i++) scanf("%d",&a[i]);for(int i = 1; i <= n; i++){while(top1 && a[stk1[top1]] <= a[i]) top1--;stk1[++top1] = i;while(top2 && a[stk2[top2]] > a[i]) top2--;stk2[++top2] = i;dp[i]=dp[*lower_bound(stk2+1,stk2+top2+1,stk1[top1-1])-1] + 1;}printf("%d",dp[n]);return 0;}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...