![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
牛客笔记
文章平均质量分 92
wuhudaduizhang
一只野生acmer,会发一些题解,总结,算法讲解。
展开
-
牛客算法竞赛入门班笔记7
完结篇,终于完结了,所以我现在入门了?树上倍增和树链剖分树上倍增就是利用二进制拆分一次跳跃尽量多的距离,用一个fa数组维护每个点第2^i层父亲是谁。这样我们就可以把之前暴力每次跳到直接父亲的操作优化到每次尽可能地跳最远的2^i层父亲,从而把n优化到logn,但是倍增虽好,它只能处理离线问题,如果涉及到在线修改,在线查询那么倍增的局限性就出来了,因此就引出了下面的算法:树链剖分。树链剖分就是把一棵树解剖成一条条链,并把其中某些链反映到线段树上维护一些链的属性。具体来说,就是把结点分为重儿子和轻儿子原创 2022-04-28 14:13:58 · 311 阅读 · 0 评论 -
牛客算法竞赛入门笔记6
RMQ与LCA这章真的是题目难,代码量还大,动不动就快200行了,呜呜呜。LCA:树上问题通过dfs序转化成区间问题(一般都是dfn序)P3379 【模板】最近公共祖先(LCA) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)题意:LCA模板题第一种做法:dfs序将LCA问题转换为RMQ问题,我们先用dfn序给每个结点标上序号,再用dfs求出树的欧拉序列,然后保存下每个数第一次出现在欧拉序列中的位置,两个数的LCA即为..原创 2022-04-25 16:57:24 · 463 阅读 · 0 评论 -
牛客算法竞赛入门笔记5
终于来了,线段树与树状数组,咱们先浅浅地发一点,更多问题敬请期待(。再浅浅地描述一下线段树:啥是线段树呢?其实就是一种区间数据结构,它是一颗树的样子,但是每个节点维护的是某一个区间的属性,根节点维护的整个区间,每个节点有两个孩子,分别维护父亲区间的左半段和右半段,这样我们就可以通过区间的拼接完成O(logn)地访问区间的属性,而区间的修改操作也同样可以O(logn)地完成,只不过在每次区间修改时,如果我发现当前这个区间已经是我要修改的大区间的一个子区间了,那么我们就没有必要再往下走去修改每个单点..原创 2022-03-10 15:50:34 · 869 阅读 · 0 评论 -
牛客算法竞赛入门笔记4
别问为什么没发树型dp和状压dp,因为我不是负责这块的,所以就做了一些例题略微了解了一下,没有发的必要,下面的图论是我负责的,先放一点比较经典的题目,也是雨巨拉的例题,后面应该会按题型发更多的图论(等这个入门班的笔记完结后)。公交线路 (nowcoder.com)板子题:链式前向星+堆优化dij(复杂度:O((n+m)logm )链式前向星详解:深度理解链式前向星ACdreamer-CSDN博客链式前向星(其实就是静态链表)#include <bits/stdc++.h&g...原创 2022-02-25 21:22:16 · 834 阅读 · 0 评论 -
牛客算法竞赛入门笔记3
牛客算法竞赛入门笔记3,线性dp,区间dp,背包原创 2022-01-14 11:33:47 · 519 阅读 · 0 评论 -
牛客算法竞赛入门笔记2
优先队列、并查集Running Median (nowcoder.com)题意:给你n个数,算出前i个数的中位数。这题挺善良的,只让输出奇数个的时候的中位数,不然可太麻烦了,我们维护两个优先队列,一个代表小于中位数的值,一个代表大于中位数的值,这样中位数永远都是数量较大的那个队列的队首元素,但是添加的时候要注意,一次添加两个,不然偶数个的时候就不知道中位数是谁了,这也就是为什么我说这题还做了个人。添加完之后要记得维护一下这两个队列的大小关系,让他们的元素数量差不超过1,这样才能保证一定取到中位数原创 2021-11-17 20:59:53 · 4225 阅读 · 0 评论 -
牛客算法竞赛入门笔记1
2021-10-20:昨天开的新坑,看了前几集感觉还可以,后悔为什么没早点跟着学,以前就感觉到了自己的知识体系太散了,这个课好像是11月还是12月结束,她说能达到icpc铜牌水平,我姑且相信好吧,希望跟着学完能有点进步,不求铜牌,cf先能上个1500吧呜呜呜。# 模拟,枚举与贪心字符串 (nowcoder.com)尺取法(说实话这可能是我第一次见到这个做法,或者第一次知道它的学名),正常暴力想法应该是枚举两个端点,但是这里的右端点其实不用后退,想一下就知道了,因此只要两个端点差速右.原创 2021-11-17 20:55:02 · 420 阅读 · 0 评论