摘要:
预备知识 树的重心:删去这个点后,森林中所有树节点的最大值最小 点分治过程 具体实现 #include<cstdio> #include<algorithm> #include<cstring> using namespace std; #define maxn 10005 struct Edge{ 阅读全文
摘要:
爬山算法 大体思路 爬山算法即是模拟爬山的过程,随机选择一个位置爬山,每次朝着更高的方向移动,直到到达山顶 具体操作 把当前的节点和要走的节点的值进行比较。 如果当前节点是最大的,那么不进行操作;反之就用要走的的节点来替换当前节点,从而实现向山峰的高处攀爬的目的。如此循环直到达到最高点。 缺点 会陷 阅读全文
摘要:
转载自LCT(Link-Cut Tree)详解(蒟蒻自留地) 如果你还没有接触过LCT,你可以先看一看这里: (看不懂没关系,先留个大概的印像)http://www.cnblogs.com/BLADEVIL/p/3510997.html 看完之后我们知道,LCT和静态的树链剖分很像。怎么说呢?这两种 阅读全文
摘要:
启发式搜索 启发式搜索是一种对搜索到的每一个位置进行评估,然后从评估的最优位置进行搜索直到目的地, 由于搜索时对每一个位置的评估是基于直观或经验的所有叫启发式搜索 A*算法 历史: 1964年Nils Nilsson提出了A1算法,是一个启发式搜索算法, 而后又被改进成为A2算法,直到1968年,被 阅读全文
摘要:
DFS序分块 将树节点按照DFS序每$sqrt{n}$个分成一块,可以处理关于子树问题 但是由于在DFS序上分块基本都可以用logn的数据结构代替,所以很不常用 这种分块方式保证块的大小和数量,不保证块的连通和直径 Size分块 对于一个节点,如果它的父亲所属块的大小小于$sqrt{n}$,则将该点 阅读全文
摘要:
参考文献国家集训队2015论文《浅谈分块在一类在线问题的应用》-邹逍遥 题目链接 题目大意 一棵n个节点的树,树的每条边长度为1或2,每次询问x,y,z。 要求输出从x开始走,每次只能走到当前节点距离$\le z$的点,问最少几次能走到y 大致思路 考虑将树进行深度分块,设$size=\sqrt{n 阅读全文
摘要:
CodeChef:Chef and Problems 题目大意 有一个长度为n的序列$a_1,a_2,……,a_n$,每次给出一个区间[l,r],求在区间内两个相等的数的最远距离($max(j-i,满足a_i==a_j且l\le i,j \le r)$) 思路: 分块将序列分成sqrt(n)块预处理 阅读全文
摘要:
基本莫队 概述 对于一个序列,如果有若干个区间询问,且对于每个询问【$l$,$r$】可以从【$l\pm 1$,$r$】或【$l$,$r\pm 1$】快速得出,那么我们可以使用莫队算法 莫队算法的大体思路是将询问存下来,每个询问由上一个询问推出来 如果我们对于每个每个询问都由上一个询问推出来,每个询问 阅读全文
摘要:
Konig定理 由匈牙利数学家柯尼希(D.Konig)于1913年首先陈述的定理。 定理的内容:在0-1矩阵中,1的最大独立集合最小覆盖包含的元素个数相同,等价地,二分图中的最大匹配数等于这个图中的最小点覆盖数。 证明: 对于上面的二分图,它的最大匹配(不唯一)已经用红线标出来了, 然后我们对于右边 阅读全文