
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 · 266 阅读 · 0 评论 -
bzoj 1969: [Ahoi2005]LANE 航线规划
好久不写图论题好虚啊,m打成n RE了3次QAQ人生耻辱啊。 首先假设没有删边,显然答案是两点间桥的数量。 于是求边双连通分量,缩点缩边,只留下桥。 所以剩下的肯定是树啦。 于是询问变成了求树上两点间距离,求下LCA就可以直接做了。 但是还有删边操作。 删边肯定不好处理。 反过来改成加边操作。 两点与LCA形成了一个边双联通分量,于是把他们缩起来。 直接缩不可取,考虑缩点的后果是原创 2016-03-15 10:08:39 · 1023 阅读 · 0 评论 -
BZOJ 4541: [Hnoi2016]矿区
平面图转对偶图完全不会啊,只好学一下了 Orz了清哥的代码,感觉思路很清晰啊 顺手写个学习笔记吧。 方便起见编号为i的边与编号为i^1的边互为反向边。 对于每个点进行极角排序,同时用一个数组表示该边的下一条边。 于是乎我们从边i出发,到i的反向边的下一条边,画个图可以发现这么走形成的域一定在这些边的右边,并且他们之中仅包含一个域(因为是贴着右边走的),这个时候可以用叉积算下面积,如果面积原创 2016-04-19 21:45:19 · 1881 阅读 · 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 · 383 阅读 · 0 评论 -
BZOJ 4567: [Scoi2016]背单词
显然第一种情况可以避免 将每个串都看成树上的一个节点,父亲为它的后缀串中最长的那个 这棵树可以通过每个串reverse后加入Trie树中,最后去掉Trie树的虚节点来获得 于是问题变成了给树上每个点标号,使得每个点的标号减去它父亲的标号的和最小 显然要按DFS序标号 考虑相邻的兄弟节点u,v 先u再v比先v再u的答案大siz[u]-siz[v] 所以子节点按子树大小排序后依次标号原创 2016-05-23 19:21:57 · 641 阅读 · 1 评论