摘要: Kruskal重构树: 简单来讲,就是在Kruskal算法进行的过程中,我们把最小生成树的边权改为点权,加虚点连边,原树的节点个数变成2n-1个 Kruskal重构树的性质 1.根据我们构造的过程,这是一个二叉堆 2.原树两点之间的边权最大值是重构树上两点Lca的权值 3.重构树中代表原树中的点的节 阅读全文
posted @ 2021-07-02 09:10 小又又yyyy 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 解决问题 \(C_i = \sum\limits_{j\bigoplus k = i} A_j\times B_k\) 其中$\bigoplus$为or,and,xor,已知A和B,求解C 和FFT还有NTT的思想都是一样的,考虑在FFT的时候,我们是从系数法转化成点值法 对A和B本身FFT一次,想 阅读全文
posted @ 2021-07-02 08:13 小又又yyyy 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 感觉今天的题解是大工程 T1 这道题的40分我觉的还是很好理解的,100分可能我自己理解的也不是很到位把,就是大致讲一下 40pts: 先定义几个状态: f[i][j]表示恰好有i个人喜欢假钞j的概率 h[i][j][k]表示前i个人恰好有j个人喜欢假钞k的概率 g[i][j]表示第i种假钞一共选了 阅读全文
posted @ 2021-06-29 15:06 小又又yyyy 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 分为四种操作: 单点向单点连边 单点向区间连边 区间向单点连边 区间向区间连边 1可以和其他几个合并 接下来讲实现。 我们考虑用两棵线段树来搞,建两棵线段树,一棵处理入边,一棵处理出边,方便起见,我们下文称其为入树和出树。 开始我们让父亲和儿子连边,然后我们再让入树和出树的叶子节点之间连上边权为0的 阅读全文
posted @ 2021-06-27 19:11 小又又yyyy 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 我们要把N个集合,总共M个元素合并成一个大集合。 很容易得出,最坏的情况下需要合并N次,每次合并M个元素,也就是O(MN)的时间复杂度。 同样的问题,如果我们把小的往大的里合,是不是就快很多? 那么他的复杂度是多少呢? 考虑一个集合,被合并一次后他的大小至少乘2,那么他被合并的次数至多为$logn$ 阅读全文
posted @ 2021-06-27 17:48 小又又yyyy 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 基本原理和FFT是一样的,那么我们参考FFT,他是把单位根代入了进去,但是这样就会产生精度问题,那么NTT如何避免这个问题呢?? 我们可以用原根来代替单位根 什么是原根呢?? 其实我也不知道,但是给出一个结论:一个质数P的原根为$g$,那么$g1,g2\dots g^$他们模P后的结果各不相同 为什 阅读全文
posted @ 2021-06-27 16:57 小又又yyyy 阅读(60) 评论(0) 推荐(0) 编辑
摘要: Day1 T1 可以线段树维护区间线性基的并,然后查询 怎么查询呢?能贡献1就贡献1 但是我OJ上T了,lemon又RE了,打算把LCA写完再去调调(正解调完再说) 正解: 我们知道线性基是一个极大线性无关组,同时一个线性空间中的任意线性无关组是等价的 我们可以扫描线,枚举右端点,那么对于一个左端点 阅读全文
posted @ 2021-06-21 15:58 小又又yyyy 阅读(38) 评论(0) 推荐(0) 编辑
摘要: Day1 T1 (不知道为什么左端点排序,并且std都T了) 看到题就想会不会什么数据结构,确实用了数据结构,不过主体还是dp 一点技巧是,可以把区间左右端点离散化(就是把多余的部分直接卡掉,包含的就是关键点,可能说的比较抽象) 暴力dp转移方程: dp[i][j] 表示前i个区间里选,前j个关键点 阅读全文
posted @ 2021-06-15 15:32 小又又yyyy 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 最近做题发现自己并不知道什么时候该用树套树,就来总结一下 一、静态整体kth 排序输出 sort(a+1,a+n+1); printf("%d\n",a[k]); 时间复杂度O(nlogn) 空间复杂度O(n) 二、动态整体kth 权值线段树+二分 查询时先查询左子树和sum,比较k和sum的大小: 阅读全文
posted @ 2021-06-12 16:08 小又又yyyy 阅读(130) 评论(0) 推荐(0) 编辑
摘要: (预计有很多博客要补,之前算法的复杂度分析也想补一补,有一场模拟赛要订正,还有KDTree要学) 线段树是一种容易维护区间的数据结构,是一种区间分治实体化的产物。 准确来说,比如你维护区间[L,R],其实就可以不断以中点分治下去。由于每次分治区间长度都会除以2,所以最多分治log层,就形成了线段树。 阅读全文
posted @ 2021-06-07 19:25 小又又yyyy 阅读(955) 评论(0) 推荐(0) 编辑