摘要:
用法 如果有状态方程$f(i,j)=min(f(i,k)+f(k+1,j))+w(i,j)$ 且w满足区间包含的单调性和四边形不等式, 则f(i,j)的决策s(i,j)单调,即$s(i,j)\le s(i,j+1)\le s(i+1,j+1)$ 证明 首先介绍区间包含的单调性和四边形不等式 区间包含 阅读全文
摘要:
预备知识 树的重心:删去这个点后,森林中所有树节点的最大值最小 点分治过程 具体实现 #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)块预处理 阅读全文