摘要: 更好的体验 trie 有两种写法,一种是迭代,一种是递推,我比较喜欢递推,比较好想,代码也短。 带注释的代码 /* 开始理解可持久化, 这里因为是acwing打卡, 可以放图片了 有可能会用图片, 尽量打字 可持久化trie, 就是一个trie树但是可以通过不同的开头(root), 变成每个历史状态 阅读全文
posted @ 2024-06-22 16:51 blind5883 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 这可不是基础题的第k小数哈。 自己想出来的,感觉要容易想到,使用可持久化线段树,时间上要比y的慢一倍。大体思想就是,我们从小到大依次加入一个数,每加入一个就记录一个版本,线段树里记录区间里数的数量,在查询时,只要二分出区间数的数量大于等于k的最小版本即可,这个版本对应插入的点就是要求的第 k 小点, 阅读全文
posted @ 2024-06-22 16:45 blind5883 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 开始我最爱的tarjan吧。 说一句,Tarjan 最难的不是算法学习,而是如何使用。 有向图的强连通分量 有向图的强连通分量,是指在有向图的一块地方,在这块地方里面,每个点都能互相到达,这就叫做一个强连通分量 定义 这里是OI wiki上的定义 强连通的定义是:有向图 G 强连通是指,G 中任意两 阅读全文
posted @ 2024-06-08 08:37 blind5883 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 这道题 P2716 和谐的雪花 本质和 P2216 [HAOI2007] 理想的正方形 是一模一样的,评蓝有点高了。 本题解解法为单调对列。当然,看题目,是可以使用 ST 表或者线段树之类的做。中心思想就是用单调队列维护固定区间内最大最小值,加上二分答案。 根据题意,很容易想象到二分 \(n\) 的 阅读全文
posted @ 2024-06-06 10:56 blind5883 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 定理内容 中国剩余定理(孙子定理),这是用来解出一堆线性同余方程组同一解的定理,通常会给出一对同余方程。如下,其中任意两个 \(mi\) 互质,求解 \(x\) \[\begin{aligned} x &\equiv a_1 \pmod {m_1} \\ x & \equiv a_2 \pmod { 阅读全文
posted @ 2024-06-04 15:36 blind5883 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 可能不全,老文章在这 什么是通解,我们知道二元一次方程,是如果只有一个式子,那么解会有无数个,而通解就是指让我们只找到一个解就可以推出其他所有解的式子。 注意以下变量都为整数。 知道了定义下面就是推式子了,首先设 \(x, y\) 是 \(ax + by = \gcd(a, b)\) 的一个解,那么 阅读全文
posted @ 2024-06-02 15:40 blind5883 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 重新整理一下扩欧。 扩展欧几里得就是欧几里得算法也就是辗转相除法的扩展应用,扩展后的作用主要为求二元一次方程组的一个解。 基本原理 众所周知,一个式子是无法确定两个未知数的唯一值的,因此 exgcd 只能解出一种符合要求的解,但是因为有通解的存在,你可以由这个解推出其他所有的可能解。 先看看扩展的地 阅读全文
posted @ 2024-05-31 12:19 blind5883 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 原题链接:P1020 [NOIP1999 提高组] 导弹拦截 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 相当好的一道题,用于理解使用 [[狄尔沃斯定理(Dilworth 定理)]] 当然这个定理肯定不止这么简单。 第一问就是让求一个最大不上升子序列,如果用 DP 求解,将是 阅读全文
posted @ 2024-05-26 21:08 blind5883 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 这是重新整理的欧拉函数,会把欧拉函数的一些性质说出来。 欧拉函数即 \(\varphi(i)\),表示从 \([1, i]\) 之间和 \(i\) 互质的数的数量 ( \(a\) 和 \(b\) 互质即 \(\gcd(a, b) = 1\))。 注意当 \(i=1\) 时,\(\varphi(1) 阅读全文
posted @ 2024-05-25 21:54 blind5883 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 历时两天,算是搞出来了。 P10380 「ALFR Round 1」D 小山的元力 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 提醒 首先如果你是用 Lucas 定理并用阶乘形式来求组合数的,请判断组合数是否成立,即 \(C_a^b\),\(a\) 是否大于等于 \(b\)。如 阅读全文
posted @ 2024-05-25 17:18 blind5883 阅读(12) 评论(0) 推荐(0) 编辑