前言
还是那几句话
冷静, 耐心, 放下, 不浮躁
不贪跟策略, 数据检验, 关键步记录
看题
\(\rm{T1}\)
逆向思维一下就是加点, 然而事实上应该比较好做
\(\rm{T2}\)
还挺有礼貌, 但是这种题放到后面一点吧
\(\rm{T3}\)
这个题可以尝试一下, 多半是最优解性质的题
\(\rm{T4}\)
更是字符串领域大神啊
考虑策略
\(\textrm{T1} \to \textrm{T3} \to \textrm{T2} \to \textrm{T4}\)
前两个可以冲一下正解, 后面的以暴力为主
\(\rm{T1}\)
- 逆向思维
- 只要结果&起点确定, 完全可以考虑倒推
- 时间倒流
冷静, 耐心, 放下, 不浮躁
不贪跟策略, 数据检验, 关键步记录
思路
题意
给定一张图
每次删除一个点, 求剩下的连通块中的最大权值
一个连通块的权值被定义为其中点权之和
发现如果倒推, 题意相当于
每次用一个点把若干连通块连到一起, 求当时的最大权值
不难发现这个用并查集维护一点也不困难, 于是就这样
\((\)感觉隔开一点更清晰\()\)
\(\text{ }\)
\(\rm{T3}\)
半小时左右过了 \(\rm{T1}\), 形式很好啊, 接着按照规划来做
- 定义操作 (约束) 和开销 / 收益, 要求最值化开销 / 收益
- 最优化问题的瓶颈, 考虑找最优解的性质来处理
- 逐元素处理
- 先找到统一的构造方式
- 直接处理
- 推导动态规划
- 先找到一组简单的合法解, 然后在基础上进行调整, 使其花销更优
- \(\rm{dp}\)
- 先考虑最终答案的表达式 \((\)合法解的构造方案\()\) , 基础上进行 \(\rm{dp}\)
- 最优解的性质
- 前后的无后效性\((\)不相关性\()\)
- 常用模型
- 分段法
- 刷表优化不能想办法转到递推
- 优化一定要考虑目标, 即使优化了也不代表说你一点也不能暴力枚举
- 先考虑最终答案的表达式 \((\)合法解的构造方案\()\) , 基础上进行 \(\rm{dp}\)
- 推导贪心策略的常用方法
- 反证 + 作差
- 增量法
- 调整法
- 交换相邻元素法
冷静, 耐心, 放下, 不浮躁
不贪跟策略, 数据检验, 关键步记录
思路
这个题明显有点难啊
先分析题目
题意
给定若干线段
要求你把这些线段分成 个集合, 每个集合的贡献是其中线段交的长度
求一种划分方式, 使得总贡献最大
去码头整点性质
凭感觉应该要先对线段排序之后做处理, 我们先按照左端点排一遍看有什么性质
考虑一种特殊情况, 即左右端点全部单增 \((\)我不会告诉你是因为我画草稿的时候忘了画包含情况不小心发现的\()\)
如下
这种情况下不难发现应该相邻分段, 考虑简单证明
证明
假设当前不是相邻分段的, 例如
那么我们考虑将其调整为相邻的, 不难发现贡献显然更大
继续整点性质, 不然还是没法做题
自然地, 我们考虑如果有包含关系应该怎么办, 接着画图
看似这是一种情况, 但是显然
这样更优
感觉也是有性质的, 只是说不太好找
看似这是一种情况, 但是显然
这样更优
所以初步猜测是要让上面几个单开, 下面的直接并到一起
这对吗?
应该很对啊
也就是把包含一条线段的分组, 然后这样子去做
那假如出现这种情况不就炸了吗
这是怎么分组的
发现按照被覆盖分组即可
考虑具体怎么转移
这个真是太典了, 我们直接前缀 \(\min\) 优化即可
哎哎哎, 样例不过???
你发现在一些情况下, 我们可以放弃一些线段, 贪心选另一些, 这样也是合法的
过大样例了, 但是不太确定
那么还有哪些情况?
时间到了先去打点暴力
\(\text{ }\)
\(\rm{T2}\)
这是啥啊, 数学题?
思路
只给 \(20\) 暴力简直不是人
以我的能力也没发现什么递推关系或者简化计算的方法
那不爆了吗
实现
暴力实现即可
没打出来, 但是来不及了赶紧去把 \(\rm{T3}\) 写了
这个故事告诉我们数学的重要性, 爷爷的
\(\rm{T4}\)
思路
只看出来 \(30\), 那我不爆了吗
这题预计会有 \(114514\) 个人日过去, 但我并没有什么简便想法
真的按照模式串去做真的会复杂到爆炸的, 所以这 \(70\) 应该留给那些充满毅力的人类或者聪慧的人类, 我就不要了
实现
暴力实现即可