社区讨论

@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 条回复,欢迎继续交流。

正在加载回复...