10月模板清理
20241016
记
肯定可以区间
唯一值得注意的是此题可以倒推,并且倒推之后的答案统计是
一个很朴素的想法是把两条路的位置同时都实时记录下来,这样就好转移了,事实证明是可以的。
记
- 第一条路 往右走, 第二条路 往右走。
- 第一条路 往右走, 第二条路 往下走。
- 第一条路 往下走, 第二条路 往右走。
- 第一条路 往下走, 第二条路 往下走。
分 点重合/不重合 两种情况赋予转移代价,套上
考虑优化成
学到一个
最大子段和 + 前后缀max 连一下就可以。
一个最大独立集问题,记
树上背包,记得给
只有
然而无济于事,因为此题
答案:
初始化:
式子就是
时间复杂度为
最后发现其实当前具体在哪个操作并不重要(下一步转移都是向全部操作),所以可以优化成一维。并且由于广搜良好的性质找到一个
状态压缩DP技巧 - A Simple Task 「CF11D」
一开始想成树形dp了,然后发现非常的难写,因为点之间有各种路径计数,很难补充不漏。每次扩展和前一个状态的联系也不是很大。
题解是一种巧妙的状压dp。显然可以对已选点集进行状压。先考虑如何统计环的数量,对于
这样定义出来的状态是
考虑怎么优化时空。注意到后两维其实都是我们主动加的限制,但仅仅是为了统计答案而同时维护这两维显得有些不划算。能不能利用好
考虑强制规定
状态:
答案:
初始化:
转移:
20241017
数位dp经典题。分两步求解:
- 预处理
,表示有 位,最高位填 ,方案数。 - 记
表示 有多少个 数,则答案为 。
记
20241018
可以是数位dp,也可以是高维dp……
- 还是先说一下我超级复杂的容斥做法吧!
记
则答案为
写三个 数位dp预处理 和 三个数位统计就可以啦!
一看题解感觉自己……(哎至少是自己亲手做出来的一道蓝题!)
-
正解是记
表示 位数,上一个数是 ,上上个数是 ,是否出现 4,是否出现 8,是否有数字连续出现 3 次,数的个数。转移比较典型,分
和 两种情况转移。注意这里我们要求的是至少要连续出现 3 次了,和我上面的做法是反着的。
20241023
数位DP - Round Numbers 「USACO06NOV」
首先读题读对:二进制下数位dp
还是很典的数位dp,先写预处理,再写
一开始我的定义是
考虑增加一位区分有没有前导零,记
设当前求解的数为
:含有前导零,贡献为
:不含前导零,最高位就强制填 。从高位到低位统计,若 ,直接过;若 ,可以选择填 然后算贡献。
(数位dp终于做完了……)
由于空间跑路器的存在,直接跑最短路再
看到
考虑一个情景:
- 如果
和 都有一条长为 的路,那么 就有一条长度为 的路!然后用跑路器就可以 跑完,即 之间存在一条权值为 的边。
这个情景告诉我们,如果我们能知道 哪些点之间能用跑路器,即 “存在
现在考虑怎么求 “点之间存不存在这种路径”。
有向图概率期望dp。
这其实是
然后就是期望
此题就是
因为转移顺序中没有回头路可走,所以不用考虑自转移的情况。
“自转移” 参见这道题:百事世界杯之旅-luogu
因为说了是有向图,所以感觉就很能dp,但是不是
再思考,进了一个环肯定要把贡献全部拿完才会出来,再根据“恢复系数”,可以预处理每个环的贡献,最后环缩点。
缩点后整张图就变成一张
最后注意因为
时间复杂度瓶颈在算环的贡献,最坏情况是
设
感觉既可以
考虑一组
由此,我们需要维护一个
20241024
考虑已知跨步的范围后怎么做。记
显然
考虑单调队列优化dp,维护一个
一个细节是若
自己写过之后看了一下别人的代码,发现很多东西可以合并。比如
并且单调队列的过期清理应该也只需要一次,放在插入元素之后搞一次。如果
20241025
发现自根往下选并不好决策,考虑倒着做。
定义:记
答案:
转移:
初始化:
void dfs(int u){
f[u][a[u]] = b[u];
for(auto v : G[u]){
dfs(v);
G(i, vmax, a[u]){
G(j, i, a[v]){
if(f[u][i - j] >= 0 && f[v][j] >= 0)
f[u][i] = max(f[u][i], f[u][i - j] + f[v][j]);
}
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】