当前位置: 首页 > news >正文

CF1407D 题解

CF1407D - Description

\(n\) 栋楼,每栋楼有高度 \(h_i\),对于第 \(i\) 栋楼和第 \(j\) 栋楼,如果 \((i,j)\) 满足以下三个条件中的任意一个,我们认为可以从第 \(i\) 栋楼跳到第 \(j\) 栋楼:

  • \(i+1=j\)
  • \(\max(h_{i+1},h_{i+2},\cdots ,h_{j-1})<\min(h_i,h_j)\)
  • \(\min(h_{i+1},h_{i+2},\cdots ,h_{j-1})>\max (h_i,h_j)\)

问你从第 \(1\) 栋楼开始,最少跳几次能跳到第 \(n\) 栋楼?

\(2\le n\le 3\times 10^5\)

CF1407D - Solution

我们设计一个 \(f_i\) 表示从 \(1\) 走到 \(i\) 的最少步数。

对于限制 \(1\),容易得到 \(f_i=f_{i-1}+1\)

限制 \(2\) 就是说对于所有 \(i<k<j\)\(i\) 都是 \(k\) 左侧第一栋比 \(h_k\) 高的楼,\(j\) 都是 \(k\) 右侧第一栋比 \(h_k\) 高的楼。这种左边/右边第一个大于/小于的题很容易想到单调栈求出 \(lft\)\(rgt\)

我们从 \(i\) 往前找,遍历每一个 \(h_j<h_i\) 的点,如果 \(j\) 满足 \(\max\{ h_{j+1},\cdots ,h_{i-1} \}<h_j\),就可以从 \(j\) 跳到 \(i\)。我们发现这个条件就等于在讲对于 \(i\) 更新单调栈时会弹出 \(j\),于是维护单调栈的时候顺手计算就行。一个细节是如果 \(h_j=h_i\),是无法从 \(j\) 跳到 \(i\) 的,注意特判。

#include<bits/stdc++.h>
#define int long long
using namespace std;
long long n,h[300005];
stack<int>q,qq;
long long dp[300005];
signed main(){cin>>n;for(int i=1;i<=n;i++){cin>>h[i];dp[i]=INT_MAX;}dp[1]=0;q.push(1);qq.push(1);for(int i=2;i<=n;i++){int lst=INT_MAX;while(!q.empty()&&h[q.top()]>=h[i]){dp[i]=min(dp[i],dp[q.top()]+1);lst=h[q.top()];q.pop();}if(!q.empty()&&lst!=h[i]){dp[i]=min(dp[i],dp[q.top()]+1);}q.push(i);lst=INT_MAX;while(!qq.empty()&&h[qq.top()]<=h[i]){dp[i]=min(dp[i],dp[qq.top()]+1);lst=h[qq.top()];qq.pop();}if(!qq.empty()&&lst!=h[i]){dp[i]=min(dp[i],dp[qq.top()]+1);}qq.push(i);}cout<<dp[n]<<endl;return 0;
}
http://www.jsqmd.com/news/69468/

相关文章:

  • #题解#洛谷P7167 喷泉#ST表#区间最值#
  • 2025 年 SAT 辅导机构怎么选?TOP1 无老师国际领衔,三大维度精准避坑 - 品牌测评鉴赏家
  • QT CMake项目中spdlog编译优化实战:从30秒到毫秒级的构建优化
  • 电源芯片的选择
  • qemu安装aix7.2
  • 编程小白必看!免费体验课大搜罗 - 品牌测评鉴赏家
  • 【算法】可获得的最大点数问题
  • 前端半小时,上线一下午?我用这个平台工程思路统一了全栈部署
  • C语言深度解剖:第一章关键字(五) - 实践
  • 【AI】第二篇 为什么会有神经网络
  • 7-16岁少儿编程课精选推荐:从启蒙到竞赛的系统路径 - 品牌测评鉴赏家
  • 权威盘点:2025年中国智能舆情监控系统市场深度解析
  • 2025年国内诚信的微动开关制造厂家推荐榜单,家电微动开关/鼠标微动开关/防水微动开关/微动开关/小型微动开关微动开关制造厂家哪里有 - 品牌推荐师
  • ABC352D 题解
  • MySQL 筛选条件放 ON 后 vs 放 WHERE 后
  • 明天不干是小狗
  • CF547B 题解
  • SAT 辅导哪里好?2025 年优质机构推荐(含精准选择指南) - 品牌测评鉴赏家
  • 10403_基于Springboot的旅游管理系统
  • MMH_蓝桥杯Python_语法基础_列表与循环语句基础
  • 2025全屋定制十大品牌哪家好?欧蒂尼硬核实力破局,领衔品质家居新革命 - 资讯焦点
  • keepalived搭建高可用
  • P5304 [GXOI/GZOI2019] 旅行者 题解
  • 2025 年面膜消费指南:告别盲目囤货,10款补水保湿抗老修护爆款适配干油敏肌,精准解决护肤痛点 - 资讯焦点
  • P3275 [SCOI2011] 糖果 题解
  • the attitude
  • 2025年国内正规的微动开关工厂怎么选购,家电微动开关/大电流微动开关/新能源微动开关/小型微动开关/汽车微动开关供货商怎么选 - 品牌推荐师
  • win10 vscode 使用ssh登录 ubuntu
  • P4064 [JXOI2017] 加法 题解
  • 2025年河南工业大学2025新生周赛 (7)