摘要:
今天学了一个强连通分量,用tarjan做。北京之前讲过,今天讲完和之前一样,没有什么进步。上课没听讲,只好回来搞,这里安利一个博客:链接 https://blog.csdn.net/qq_34374664/article/details/77488976 讲一下我自己的体会吧,其实就是维护一个栈,然 阅读全文
摘要:
7月16日 集训第一天,毛晗杨给我们讲的基础算法和数论。基础算法讲了分块和三分等知识点,分块之前接触过,个人认为和莫队有一定的相似之处,都是把整个数组分为一个个大小相等的块,然后对块进行操作,每个块大小为√n,这样的分块方法时间复杂度最低。三分其实和二分没有本质上的区别,就是找两个中间的断点分别比较 阅读全文
摘要:
上个假期就学了KMP,但是基本不用,所以忘干净了。。。这个的核心思想就是next数组,next数组学名叫最长相同前缀后缀。还不错的算法,KMP 匹配的过程中比原来的暴力匹配多了一个跳来跳去的next。 下面有一个链接:从头到尾KMP,写的很棒,很好懂! 贴板子代码:(自己写的注释,有可能不对,欢迎指 阅读全文
摘要:
可并堆就是一种可以支持合并操作的堆,满足堆的性质,主要就是还要满足左子树比右子树要长,然后就直接进行合并操作的时候,直接连在上一个的右子树就行了。然后每次交换一下两个子树的位置(左右互换)。 直接粘贴板子代码。 阅读全文
摘要:
今天集训讲平衡树,就瞎搞了一下。直接下代码。 阅读全文
摘要:
这个题比较狗,一开始没有啥思路,但是看完题解觉得还是比较好理解的。主要思路就是需要把每个数是几个数的最大公约数求出来,然后求和就行了。蓝书P124例九 设f(n) = gcd(1,n) + gcd(2,n) + ... + gcd(n - 1, n),则本题主要求f(n),然后一点点递推。满足i为最 阅读全文
摘要:
之前堆都是直接用stl中的priority_queue,一直不会手写堆,所以今天搞一下这个手写堆。 洛谷P3378堆的板子 挺好理解的。 阅读全文
摘要:
状压dp,就是把动态规划之中的一个个状态用二进制表示,主要运用位运算。 这里有一道例题:蓝书P639猛兽军团1 [SCOI2005]互不侵犯 题目: 直接上代码,注释很详细 上面这个代码过于复杂,不好理解,我们换一种写法: 阅读全文
摘要:
今天写内网题,连着写了两道区间dp,这里就总结一下。 区间dp思想主要是先枚举f[i][j]中的i,再枚举j,再枚举一个1~j之间的变量k,一般是f[i][j] = max(f[i][j],f[i][k] + f[k][j]);(石子合并) 但是今天遇到的两个都不是这样的。 第一题,复制书稿,洛谷P 阅读全文