专栏文章
一题多解复习
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @minu6umq
- 此快照首次捕获于
- 2025/12/02 08:25 3 个月前
- 此快照最后确认于
- 2025/12/02 08:25 3 个月前
本节为思维上的基本功,算法较杂。
例题 英雄辈出
题目描述
给你一个排列,你需要输出每个元素后第一个比其大的元素下标,若不存在输出 。
思路形成
序列转为二维平面点。
上下左右,四个方向,每个方向还能有多解。
上下左右,四个方向,每个方向还能有多解。
序列问题,先用三个特殊序列过脑子:
- 升序
- 降序
- 全部相同的序列
上
从大到小考虑每个元素。
Hint: 可以使用
Hint: 可以使用
set 等下
从小到大考虑每个元素。
Hint: 每次删除最小元素
Hint: 每次删除最小元素
左
从左到右考虑每个元素
Hint: 单调栈存问题
Hint: 单调栈存问题
右
从右到左考虑每个元素
Hint: 单调栈存答案
Hint: 单调栈存答案
请着重思考你的单调栈存了什么。
选出你认为的最佳解法把~
选出你认为的最佳解法把~
例题 UFO
题目描述
给你若干个区间,每个区间都有个权值。
问对于每个位置,所有覆盖该位置的区间权值最小是多少?
问对于每个位置,所有覆盖该位置的区间权值最小是多少?
理解
想一想图像,这里区间的高度较为明显。
思路形成
上
从高到低考虑每个区间
下
从低到高考虑每个区间
左
从左到右考虑每个元素
Hint: 扫描线 +
Hint: 扫描线 +
set 存储右
与 左 有对称性
例题 Sequence 序列问题
上
元素从大到小
Hint: 想象一个山峰,最大值必须留到最后。
Hint: 想象一个山峰,最大值必须留到最后。
下
元素从小到大
Hint: 山谷合并旁边
Hint: 山谷合并旁边
左
元素从左到右
Hint1: 思考形如 的单调序列
Hint2: 思考形如 简单乱序序列
Hint3: 单调栈
Hint1: 思考形如 的单调序列
Hint2: 思考形如 简单乱序序列
Hint3: 单调栈
右
与 左 有对称性
正解
可以由上面任意一种再思考一下得到。
CPPlong long ans=0;
for(int i=1;i<n;i++)
ans+=max(a[i],a[i+1]);
cout<<ans;
例题 挂缀 pendant
题目大意
选择最好的解法,不要局限于单一解法。
本题有三维信息,但显然珠缀的编号是无效的。
所以只有两维(区间级别)
本题有三维信息,但显然珠缀的编号是无效的。
所以只有两维(区间级别)
问题转化
已知每一个区间左端点最右能在哪,以及区间长度,求能选几个不重叠的区间。
按照右端点限制排序
模拟,贪心,反悔
按照区间排序
线段树 + 基本功。
十分复杂。
十分复杂。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...