上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 21 下一页
摘要: 0x01 剪枝 Part1.剪枝方法 \(DFS\) 是一种常见的算法,大部分情况下,很少会爆搜为正解的题目。因为 \(DFS\) 的时间复杂度特别高。 我们可以先写一段 dfs 的伪代码 int ans = 最坏情况, now; // now 为当前答案 void dfs(传入数值) { if ( 阅读全文
posted @ 2023-10-21 08:57 PassName 阅读(74) 评论(1) 推荐(0)
摘要: ST 表 定义 ST 表是用于解决 可重复贡献问题 的数据结构,通俗来说,一般可以解决区间查询问题。 区间最值和 \(gcd\) 我们以最大值为例,然后可以再推广到最小值和区间 \(gcd\) 首先你应该知道的是,ST表是利用倍增思想来缩短时间的。而倍增就体现在他数组的定义中:对于$f[i][j]$ 阅读全文
posted @ 2023-10-19 20:26 PassName 阅读(86) 评论(0) 推荐(0)
摘要: 2023.10.14 做题记录 P5595 歌唱比赛 一个非常简单的贪心。 先判断什么时候是 -1 ,将字符串从头开始往后遍历,Z 的右边不能有 X,Y,如果有则直接输出 -1。 因为是 SPJ,如果该字符串有答案的话,倒着看,字母是谁的就随便给一个大的数,如果是 \(X\),则小\(X\)的数为 阅读全文
posted @ 2023-10-14 17:30 PassName 阅读(24) 评论(0) 推荐(0)
摘要: 树链剖分 0x00 绪言 在阅读这篇文章前,确保你已学会你下内容: 线段树 深度优先遍历 会了这些就可以开始阅读本篇文章了。 0x01 什么是树剖 把一棵树拆成若干个不相交的链,然后用一些数据结构去维护这些链 那么如何把树拆成链? 首先明确一些定义: 重儿子:该节点的子树中,节点个数最多的子树的根节 阅读全文
posted @ 2022-11-27 16:13 PassName 阅读(47) 评论(0) 推荐(0)
摘要: 左偏树 0x00 绪言 左偏树是一种比较神奇的数据结构,代码实现类似于线段树,但又是一种原理和线段树完全不一样的数据结构,如果读者打算阅读此博客,一定要读完,不要只看前半部分分,容易造成误导。 0x01 dist 的定义和性质 对于一棵二叉树,我们定义外节点为左儿子或右儿子为空的节点,定义一个外节点 阅读全文
posted @ 2022-11-27 15:18 PassName 阅读(62) 评论(0) 推荐(0)
摘要: 二叉搜索树 & 平衡树 专题 0x00 前言 我 AFO 了,但不代表不写 Code 了。。。 CSP-S 在数据结构上吃了大亏,就差这一点就一等了,所以觉得好好整整。 本篇博客主要研究二叉搜索树。 0x01 Treap Treap 是一种弱平衡的二叉搜索树。它同时符合二叉搜索树和堆的性质。 本文将 阅读全文
posted @ 2022-11-22 17:49 PassName 阅读(64) 评论(0) 推荐(0)
摘要: [HAOI2011] 向量 首先将题目转化,转化为求方程: $k(a,b)+q(b,a)+w(a,−b)+c(b,−a)=(x,y)$ 将这个方程再次化简,即为: $(k+w)a+(q+c)b=x$ $(k-w)b+(q-c)a=y$ 到这里,我们可以联想到 $Bézout$ 定理,$Bézout$ 阅读全文
posted @ 2022-10-27 16:16 PassName 阅读(83) 评论(0) 推荐(1)
摘要: 1.树形结构 与 树形dp PS :在CSP-S 2019,CSP-J 2020,CSP-S 2020,CSP-S 2021 均有考查 此类问题的做题方法就是将问题转化成树上的问题,然后进行深度优先遍历就可以了,之后在深度优先遍历上稍作修改即可。 首先要知道如何写深度优先遍历: void dfs(i 阅读全文
posted @ 2022-09-17 16:22 PassName 阅读(561) 评论(0) 推荐(1)
摘要: # 如何更快的使用高级数据结构 ## Part 1 :`__gnu_pbds` 库 `__gnu_pbds` 自带了封装好了的平衡树、字典树、hash等强有力的数据结构,常数还比自己写的小,效率更高 # 一、平衡树 ```cpp #define PII pair #define mp_(x, y) 阅读全文
posted @ 2022-08-21 23:25 PassName 阅读(85) 评论(0) 推荐(0)
摘要: 备战线段树 T1 AcWing .1275. 最大数 查询最大值 + 单点修改 #include <bits/stdc++.h> #define int long long using namespace std; const int N = 1e7 + 5; struct SegmentTree 阅读全文
posted @ 2022-08-13 21:18 PassName 阅读(40) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 21 下一页