L
A
S
T
_
B
R
E
A
T
H
摘要:近期打算做 50 道 CF 的题目,并会附上题解。 计划会在暑假的第一个月内完成。 CF995E Number Clicker 双向BFS+逆元 (Updated on 2020/3/9) CF487E Tourists 点双连通分量+圆方树+树链剖分+splay (Updated on 2020/ 阅读全文
posted @ 2021-04-16 21:07 Last_Breath 阅读(29) 评论(0) 推荐(2) 编辑
摘要:前言 splay学了已经很久了,只不过一直没有总结,鸽了好久来写一篇总结。 先介绍 splay:亦称伸展树,为二叉搜索树的一种,部分操作能在 \(O( \log n)\) 内完成,如插入、查找、删除、查询序列第 \(k\) 大、查询前缀(比查询的数小的数中最大的数)、查询后缀(比查询的数大的数中最小 阅读全文
posted @ 2021-05-31 13:34 Last_Breath 阅读(196) 评论(0) 推荐(3) 编辑
摘要:前言 题目链接:洛谷 题目链接:CodeForces 惊了,splay 好写还快但题解里没人用。 题意 给定 \(n\) 个区间 \([l_i,r_i]\) ,请你构造一个序列,每个元素 \(a_i\) 满足 \(a_i\in[l_i,r_i]\) ,且该序列的最长严格上升子序列最长。 思路 \(n 阅读全文
posted @ 2021-05-25 21:05 Last_Breath 阅读(32) 评论(0) 推荐(1) 编辑
摘要:前言 题目链接 题意 有 \(n\) 个点,\(q\) 次连边,以及起点 \(s\) 。连边具体分三种: \(1\) \(v\) \(u\) \(w\) 从 \(v\) 到 \(u\) 连一条边。 \(2\) \(v\) \(l\) \(r\) \(w\) 从 \(v\) 向 \(l\) 到 \(r 阅读全文
posted @ 2021-05-15 13:54 Last_Breath 阅读(26) 评论(0) 推荐(1) 编辑
摘要:前言 题目链接 题意 \(n\) 个城市,构成一棵树。给定 \(m\) 个人生活在的城市,输入时的 \(A_i\) 表示编号为 \(i\) 的人居住的城市。 有 \(q\) 次询问,给定两个城市,求两个城市的路径中,编号前 \(a\) 小的人的编号并输出。 思路 树上倍增。 可以将 \(u\) 到 阅读全文
posted @ 2021-04-19 13:37 Last_Breath 阅读(23) 评论(0) 推荐(1) 编辑
摘要:前言 题目链接 题意 给定一个数集 \(A\) ,求一个严格上升的序列使得序列每个数都属于 \(A\) ,且任意相邻的两个数不互质。求构造出的数列的最大长度。 思路 考虑 DP, 设 \(dp[i]\) 以 \(i\) 为质因数之一的数结尾的最大长度。 首先预处理分解质因数,对于 \(A\) 中的数 阅读全文
posted @ 2021-04-17 15:34 Last_Breath 阅读(19) 评论(0) 推荐(0) 编辑
摘要:前言 运用算法:点双连通分量,圆方树,树链剖分,splay(可以用 multiset 维护,不知道 OI 可不可以使用,所以就用了 splay )。 题目链接。 题目大意 有 \(n\) 个点, \(m\) 条边,每个点 \(i\) 都有点权 \(w_i\) 。有两个操作: C a w: 表示 a 阅读全文
posted @ 2021-04-16 21:53 Last_Breath 阅读(26) 评论(0) 推荐(0) 编辑
摘要:近期打算做 50 道 CF 的题目,并会附上题解。 计划会在暑假的第一个月内完成。 CF995E Number Clicker 双向BFS+逆元 (Updated on 2020/3/9) CF487E Tourists 点双连通分量+圆方树+树链剖分+splay (Updated on 2020/ 阅读全文
posted @ 2021-04-16 21:07 Last_Breath 阅读(29) 评论(0) 推荐(2) 编辑
摘要:前言 线段树+网络最大流的建模题。 题目链接 题目大意 最初时有 \(n\) 个 \(1\) 。给定 \(op\) 、 \(l\) ,其中, \(l\) 为操作次数上限。你有四个操作: 若 \(op=1\) ,则接下来两个整数 \(a,b\) ,表示可以将 \(a\) 变为 \(b\) 。 若 \( 阅读全文
posted @ 2021-04-02 22:36 Last_Breath 阅读(34) 评论(1) 推荐(1) 编辑
摘要:题目大意 在一个 \(n\times n\) 的矩形中,题目会给出 \(m\) 个障碍物。有两个小球,你可以选定四个方向(上下左右)的其中一个,小球会朝着这四个方向一直滚动,直到遇到障碍物或是矩形的边缘停止。有 \(q\) 条形如 \(a\) \(b\) \(c\) \(d\) 的询问,代表两个小球 阅读全文
posted @ 2021-03-30 14:05 Last_Breath 阅读(225) 评论(0) 推荐(2) 编辑
摘要:题目链接(洛谷) 题目大意 给定两个数 \(u\) , \(v\) 。有三种操作: \(u=u+1(mod\) \(p)\) 。 \(u=u+p−1(mod\) \(p)\) 。 \(u=u^{p−2}(mod\) \(p)\) 。 求最小能把 \(u\) 变为 \(v\) 的操作步数。 思路 BF 阅读全文
posted @ 2021-03-09 21:38 Last_Breath 阅读(68) 评论(0) 推荐(1) 编辑
摘要:前言 模拟退火 \(Simulated\) \(Annealing\) , 简称 \(SA\) ,最早在 \(1953\) 年由 \(N. Metropolis\) 提出,后经优化得到现在广泛应用的算法,应用在很多领域当中。 本文题目链接 算法思想 模拟退火是随机化搜索的一种,若随机化搜索写得好,则 阅读全文
posted @ 2021-03-09 21:38 Last_Breath 阅读(41) 评论(0) 推荐(1) 编辑
摘要:前置知识 线段树 \(and\) 树上基本操作 定义 几个在树链剖分很重要的概念。 重儿子 对于一个父节点,含有节点数最多的儿子称为重儿子。但重儿子只有一个,若满足条件的儿子有多个,则指定其中任意一个儿子为重儿子。 轻儿子 对于一个父节点,除了重儿子以为,其余的都称为轻儿子。 重边 由父节点与重儿子 阅读全文
posted @ 2021-03-06 22:50 Last_Breath 阅读(95) 评论(0) 推荐(1) 编辑
摘要:前言 博主很笨 ,如有纰漏,欢迎在评论区指出讨论。 二分图的最大匹配使用 \(Dinic\) 算法进行实现,时间复杂度为 \(O(n\sqrt{e})\),其中, $n$为二分图中左部点的数量, \(e\) 为二分图中的边数。若是匈牙利算法,时间复杂度为 \(O(nm)\) , \(m\) 为二分图 阅读全文
posted @ 2021-02-23 17:36 Last_Breath 阅读(229) 评论(1) 推荐(2) 编辑
摘要:前言 最开始搞 \(OI\) 的时候接触了搜索算法,后面基本上没有在练过了。若本文有误,请在讨论区指出。 本文例题链接 思想 假设一张图, \(ans1\) 在很深的地方, \(ans2\) 离搜索树的根节点最近,但是需要找到的答案为 \(ans3\) 。 首先考虑 \(DFS\) ,一般是一搜搜到 阅读全文
posted @ 2021-02-04 17:35 Last_Breath 阅读(325) 评论(1) 推荐(1) 编辑
摘要:前言 斜率优化通常使用单调队列辅助进行实现,用于优化 \(DP\) 的时间复杂度。 本文例题链接 适用范围 使用单调队列优化 \(DP\) ,通常可以解决型如: \(dp[i]=min(f(j))+g(i)\) 的状态转移方程。其中 \(f(i)\) 是只关于 \(i\) 的函数, \(g(j)\) 阅读全文
posted @ 2021-02-02 17:08 Last_Breath 阅读(206) 评论(4) 推荐(3) 编辑