摘要:
[HEOI2013]SAO 这道题是个不错的计数题,考察了 调换求和顺序再前缀和优化 ,难点在状态设计,比较考察思维。 一句话题意:给你一棵数,树边为有向边,求其拓扑序数。 对DAG求拓扑数是一个NP问题,但是这里保证是一棵树,所以我们可以用树形DP来求解。 状态的设计上,光设结点编号$u$不够,还 阅读全文
摘要:
```cpp include using namespace std; define ll long long const int maxn = 1e6 + 5; ll ans = 0; namespace SAM { struct Node { int ch[26], fa, val; int l 阅读全文
摘要:
前言 本文大概是作者对图论大部分内容的分析和总结吧,$\text{OI}$和语文能力有限,且部分说明和推导可能有错误和不足,希望能指出。 创作本文是为了提供彼此学习交流的机会,也算是作者在忙碌的中考后对此部分的复习和延伸吧。 本文顾名思义是探讨$\text{DFS}$在图论中的重要作用,可能心情比较 阅读全文
摘要:
不错的一道题。 题意:每次修改一栋楼,求这些楼顶跟原点$(0,0)$的斜率单调上升长度(不是$\text{LIS}$)。 因为一个楼房能被看到可以等价于它的斜率比之前的任何一个都大。 这道题实际上满足区间合并,但是比较麻烦。 重点就在$\text{pushup}$的写法。 首先定义线段树中区间的解即 阅读全文
摘要:
写码30min,调码3h的题。。 好在最后查出来了 改成了 然后$40\rightarrow 100$ 阅读全文
摘要:
瞪眼观察题。发现行列都跟斐波那契数列有关。 如果能求出第一列就好了。 发现第一列的数都是由若干个$2$和若干$3$的和加$1$。 发现第$fib[i]$行有$fib[i-2]$个3和$fib[i-3]$个2。 其他行呢? 将行号拆分成若干项斐波那契数列的和,发现对应的$3$、$2$的数目也是对应的和 阅读全文
摘要:
最近公共祖先就是求一颗有根树上,点对$(u,v)$的最近的公共祖先结点。例如如下的一个图中, $lca(3,7)=1$,$lca(3,4)=2$。 求任意两点的$LCA$,有离线和在线之分,总共主要有$4$种算法。 离线 这里指已知查询,且无先后顺序影响。 1、Tarjan 首先读入所有的询问对,然 阅读全文
摘要:
具体待更 代码: 阅读全文
摘要:
树链剖分是基于重孩子将树划分成若干条链,配上对应的数据结构(例如这里的线段树)就可以维护树中的链,甚至可以直接维护子树。 貌似还有更高级的$\text{LCT}$,要搭配$\text{Splay}$。正在学习中。 具体证明。。待更。。 源码如下。 阅读全文
摘要:
化成数学代数式就是这样: $$\sum_{x=a}^b\sum_{y=c}^d[\gcd(x,y)=k]$$ 根据差分的思想,可以将该式变成: $$\sum_{x=1}^b\sum_{y=1}^d[\gcd(x,y)=k]-\sum_{x=1}^{a-1}\sum_{y=1}^d[\gcd(x,y) 阅读全文