杂题
todo list
Online Judge | Problem | State |
---|---|---|
N/A | Problem #0 | / / |
Luogu | P3611 | |
Luogu | P5194 | |
Luogu | P2895 | |
Luogu | P2758 | |
Luogu | P1455 | |
Luogu | P2256 | |
Luogu | P1113 | |
Luogu | P2419 | |
Luogu | P1629 | |
Luogu | P5837 | |
Luogu | P1550 | |
Luogu | P1991 | |
Luogu | P5663 | |
Luogu | P1825 | |
UVa | 10048 | |
UVa | 532 | |
Codeforces | #735 E | |
Codeforces | #413 D | / |
Codeforces | #601 C |
- [1] Problem 的链接均来自 Luogu Online Judge .
- [2] 第一行用作格式说明示例 .
- [3] 点击后面的 的 State 可以看见提交记录哦 .
- [*] 题目排序:大概是按 OJ 为第一关键字,难度为第二关键字排序
- [*] 有些题用的是古老提交记录(
2020-..-..
)可能 Code Style 会非常不一样 .
题解
想要代码可以找我(洛谷 227514 私信)如果我还活着就会回复的qwq
Online Judge | Problem | Tag |
---|---|---|
Luogu | P3611 | 二分,堆 |
Luogu | P5194 | 搜索 |
Luogu | P2895 | 搜索 |
Luogu | P2758 | dp |
Luogu | P1455 | 并查集,背包 |
Luogu | P2256 | 并查集 |
Luogu | P1113 | 拓扑排序,dp |
Luogu | P2419 | Floyd |
Luogu | P1629 | 最短路 |
Luogu | P5837 | 最短路 |
Luogu | P1550 | 最小生成树 |
Luogu | P1991 | 最小生成树 |
Luogu | P5663 | 最短路 |
Luogu | P1825 | 搜索 |
UVa | 10048 | 最短路 |
UVa | 532 | 搜索 |
Codeforces | #735 E | 树 dp |
Codeforces | #413 D | 迷惑 dp |
Codeforces | #601 C | 概率 dp |
1. P3611
显然先二分,然后就变成维护一个数据结构 ,支持
- 全局减一个常数 ,随即修改一个数
- 查最小值
操作 可以变成把那个数加上 然后改,相当于维护了一个出场时间 .
用一个堆就可以搞了 .
2. P5194
每个砝码的质量至少等于前面两个砝码的质量的和
又有砝码的质量是有符号 位整数,类似一个 Fibonacci 数列, 是不会很大的 .
暴搜加个剪枝就艹过去了???不明觉厉
3. P2895
简单 bfs .
rnm 连 bfs 都不会写了,给洛谷贡献 15 条提交记录
4. P2758
编辑距离,挺经典的 dp,老早就 A 了,还写过题解 Link .
重新写一遍才发现不会用 scanf("%s")
.
5. P1455
每个联通块合并,然后 01 背包 .
我原来的代码我自己都认不出来草
6. P2256
并查集板子,Trick .
7. P1113
拓扑排序,然后 dp,非常简单 .
8. P2419
Floyd 传递闭包板子 .
9. P1629
反图最短路,经典小 trick.
10. P5837
一开始想二分,暴毙 .
我们要求的就是找一个生成树 ,使得边上的
最大 .
俩限制肯定不好求,我们考虑固定一个 . 看起来挺可做 .
最多只有 个取值,枚举 . 用 Dijkstra 跑在边的流量 的限制下的最短路求 .
不用担心 是否能取到,因为如果 一定,那么
取不到的会被最优性舍掉的
这题好棒/cy .
11. P1550
最小生成树(MST)板子
12. P1991
yeeeeeeeeeeeeeeeah
二分 ,然后就变成判断连通块个数
肯定是在最小生成树上找边选呐,然后没了
欧几里得距离最小生成树可以暴力搞
13. P5663
卧槽这不是矩阵快速幂吗
卧槽这不是大力找奇环最短路吗
注意到如果 可以,那么 且与 同奇偶性的都可以 .
Dijkstra 求经过奇数条边的最短路 和经过偶数条边的最短路 ,两者可以互相转移(可以共用一个 priority_queue
) .
然后只需判断 即可 .
14. P1825
bfs
15. UVa10048
全源最小瓶颈路,可以 Floyd .
注意输出格式
16. UVa542
和 P2360 一模一样
我草原来 _start
不能用 .
多组数据要清空!
多组数据要清空!
多组数据要清空!
多组数据要清空!
多组数据要清空!
好,正片开始 .
dp 还是得刷表法 = =
17. CF #735 E
参考:https://www.luogu.com.cn/blog/IC1805/solution-cf735e
好神啊,但是教练说挺水 .
呼呼,肯定一眼树形 dp,树 dp 尽管多水我都不会做 .
Ver 1.
定义一个 表示子树内离 最近的着色点到 的距离为 ,子树内离 最远的非合法点到 的距离为 的方案数 .
然后我们发现 对于非合法子树, 的转移与 无关(具体可以看链接证明),于是
Ver 2.
于是 数组可以压起来:
数组现在定义为:()表示:
- 若 表示以 为根的子树是一棵合法子树,且子树内离 最近的染色点与 的距离为 ;
- 若 表示以 为根的子树是一棵非合法子树,且子树内离 最远的染色点与 的距离为 ;
显而易见, .
转移(刷表法)如下:
枚举 且 为 的儿子,则考虑合并 和 .
首先由乘法原理贡献就是 .
考虑转移到哪(状态都是分类讨论定义的,肯定是要分类讨论的):
Impossible |
的部分比较玄妙,因为俩情况杂糅在一起,仔细体会下 .
综合一下:
- :转移到 .
- :转移到 .
于是答案就是 ,没了 .
时间复杂度 .
可能会补其他复杂度做法 .
18. CF #413 D
参考:
- https://www.luogu.com.cn/blog/skylee/solution-cf413d
- https://www.luogu.com.cn/blog/JSYZCHTHOLLY/solution-cf413d
好神啊,但是教练说挺水 .
极简题解(时间管理大师):
定义一个状态为最长不上升后缀的数字和,于是合并的过程可以直接用加法代替,然后根据下一次的价值进行转移即可 .
先做点平凡的定义:
一个 Basic 状态定义为只有 和 的一个序列 .
一个状态定义为一个 Basic 状态经过 规则向左合并后形成的序列 .
大体思路:考虑一个加数的过程,也就是题目里给出的 .
由于相同的两个数字会被合并,所以状态中必然没有两个相邻数字相同
我们只关心状态可以扩展到哪些状态,于是我们考虑将状态分成若干个下降序列,那么如果在后面加一个数,肯定只会对最后一个下降序列有影响,并且下降序列必然不会合并 .
我们不妨把最后一个下降序列(即下降后缀)定义为这个状态的「代表段」 .
所以我们整一个类似 Hash 的东西,把每个状态 用它的代表段元素和表示,记作 .
考虑在末尾添一个数的过程, 添加一个数 变成 ,让我们看看 的变化:
- 若 的最后一个数 满足 ,那么 .
- 否则 .
开始 dp .
定义 表示前 个数已经处理完毕,状态的 值为 的方案数 .
加一个数 ,讨论转移(以下均为从 转移):
- 若 ,那么必然转移到 .
- 若 .
- 若状态末尾有 ,则转移到 (
重启人生后缀更新) . - 若不然,则转移到
- 若状态末尾有 ,则转移到 (
- 若 ,就相当于 的方案数加 的方案数 .
有了前面讨论 的变化,转移就轻而易举了 .
「若状态 末尾有 」怎么判断?
代表段里每个元素都是 的次幂,并且一定单调减,于是所有 的元素都是 的倍数 .
又由于最简性, 最多出现一次,于是就有
- 若 ,则状态 末尾无
- 若 ,则状态 末尾有
于是答案是
不是很好做,于是我们可以在转移的时候把所有 的 大力并到 上(就是所有 全部换成 ),这样答案就是 了 .
其实可以滚动数组,但是没必要 .
时间复杂度 .
提交记录那里有两条,前面的是边读边 dp(半刷表),后面的是读完再 dp(刷表) .
18. CF #601 C
参考:https://www.luogu.com.cn/problem/solution/CF601C 第一篇
题解都说简单,概率 dp 不会实锤了
得分是 .
排名的定义为 , 表示总分严格比他低的人数。
Then,定义 表示前 人总分 的期望人数,因为对于每轮比赛,对于除了 的 种得分就是等概率分布(古典),于是
然后这个 可以前缀和优化,答案就是
时间复杂度 .
partial_sum
咋用啊
以下是博客签名,正文无关
本文来自博客园,作者:yspm,转载请注明原文链接:https://www.cnblogs.com/CDOI-24374/p/15688665.html
版权声明:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0)进行许可。看完如果觉得有用请点个赞吧 QwQ
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】