![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DFS序
文章平均质量分 78
nlj1999
这个作者很懒,什么都没留下…
展开
-
1103: [POI2007]大都市meg
说实话第一眼看成树剖了。话说树剖+BIT应该能过吧。。。。。吧。。。。想想还是算了,于是祭出了DFS序(不是欧拉序列)。以l[i]记录开始访问一个节点的时间,以r[i]记录退出一个节点的时间,于是以i为根的子树的所有l和r的值都在l[i]和r[i]之间了。然后就可以乱搞(雾)求树上前缀和了(话说这个应不应该叫树上前缀和啊),然后用BIT维护树上前缀和。#include#inc原创 2015-12-15 20:59:32 · 238 阅读 · 0 评论 -
bzoj 1969: [Ahoi2005]LANE 航线规划
好久不写图论题好虚啊,m打成n RE了3次QAQ人生耻辱啊。首先假设没有删边,显然答案是两点间桥的数量。于是求边双连通分量,缩点缩边,只留下桥。所以剩下的肯定是树啦。于是询问变成了求树上两点间距离,求下LCA就可以直接做了。但是还有删边操作。删边肯定不好处理。反过来改成加边操作。两点与LCA形成了一个边双联通分量,于是把他们缩起来。直接缩不可取,考虑缩点的后果是原创 2016-03-15 10:08:39 · 971 阅读 · 0 评论 -
BZOJ 4541: [Hnoi2016]矿区
平面图转对偶图完全不会啊,只好学一下了Orz了清哥的代码,感觉思路很清晰啊顺手写个学习笔记吧。方便起见编号为i的边与编号为i^1的边互为反向边。对于每个点进行极角排序,同时用一个数组表示该边的下一条边。于是乎我们从边i出发,到i的反向边的下一条边,画个图可以发现这么走形成的域一定在这些边的右边,并且他们之中仅包含一个域(因为是贴着右边走的),这个时候可以用叉积算下面积,如果面积原创 2016-04-19 21:45:19 · 1830 阅读 · 0 评论 -
BZOJ 4551: [Tjoi2016&Heoi2016]树
NOIP题?DFS序+永久化标记10分钟码完。。。。。。。#include#include#include#include#include#include#include#include#include#define rep(i,l,r) for(int i=l;i<=r;i++)#define per(i,r,l) for(int i=r;i>=l;i--)#d原创 2016-05-20 14:41:38 · 346 阅读 · 0 评论 -
BZOJ 4567: [Scoi2016]背单词
显然第一种情况可以避免将每个串都看成树上的一个节点,父亲为它的后缀串中最长的那个这棵树可以通过每个串reverse后加入Trie树中,最后去掉Trie树的虚节点来获得于是问题变成了给树上每个点标号,使得每个点的标号减去它父亲的标号的和最小显然要按DFS序标号考虑相邻的兄弟节点u,v先u再v比先v再u的答案大siz[u]-siz[v]所以子节点按子树大小排序后依次标号原创 2016-05-23 19:21:57 · 586 阅读 · 1 评论