2022.11.02
2022.11.02
T1 P6503
单调栈维护 个值:令当前数为 , 维护 往前第一个大于/小于 的数的位置和 往后第一个大于/小于 的数的位置 ,枚举每一个数的贡献即可,注意一下去重的细节(可以规定做出贡献的最小值为所有相同的最小数中位于区间最左侧的,最大值同理) 其实相当于之前某天清橙上的T1
T2 P4951
比较裸的 0/1分数规划
,做过类似题目的话这题不难。
可以推出要使得答案 合法,就要保证所有选出的路中 。
二分这个 跑最小生成树就好了。
T3 P3509
倍增好题,让我更深刻地理解了倍增。(阿同时也有双指针的成分)
做的时候想到了 倍增
两个字,除此之外什么都没想出来。
首先在求 第i个位置跳1步到达的点
时,双指针(相当于一个区间)总是向后移动(或不移动),因为位置 到 当前 的距离总是在增大,双指针向后移动才有可能使得答案更优。
处理完这玩意就可以用倍增求答案了。
将 二进制分解,令 表示 位置跳 次后的位置(已求出),则有转移方程 。在 的二进制中“1”的对应位置将 更新到 中就彳亍了。数组滚动一下,就会发现答案的更新特别像快速幂的求法。
T4 P7365
一道神奇的有关网格的DP(一些大佬称其为暴力DP)。
这里将 “I” 字母分为的三个部分称为第一,二,三部分。
做法:设 表示第 行,当前在第 部分,区间 的最大面积。
由于第二部分必须比第一部分短一截,在暴力的时候就得在枚举第一部分的 时枚举第二部分的 ,pia的一下 了。
于是出现了一个小技巧:使用另一个数组 ,
记录 的最大值,
记录 的最大值,
这样在不同部分的转移中就可以直接调用 数组而不用枚举 了。
最后我们会发现 这一维可以被轻松地压掉,但好像可以不压。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现