dfs序
里阿奴摩西
这个作者很懒,什么都没留下…
展开
-
[dfs序 树状数组] BZOJ 4034 [HAOI2015]T2
两个log可以树链剖分 day2听课时惊闻一个log的做法 但我打low了,并不快... #include #include #include #define V G[p].v using namespace std; typedef long long ll; inline char nc() { static char buf[100000],*p1=buf,原创 2016-04-27 19:52:30 · 563 阅读 · 0 评论 -
[LCT 线段树 dfs序] BZOJ 3779 重组病毒
%%%PoPoQQQ http://blog.csdn.net/popoqqq/article/details/45919545 ”题目大意:给定一棵树,初始每个点都有一个颜色,支持三种操作: 1.将某个点到根的路径上所有点染上一种新的颜色 2.将某个点到根的路径上所有点染上一种新的颜色,然后把根设为这个点 3.定义一个点的代价为这个点到根路径上颜色的种类数,求某个点子树中所有点原创 2016-04-30 14:05:07 · 736 阅读 · 0 评论 -
[AC自动机 fail树 树链的并] BZOJ 3881 [Coci2015]Divljak
建出AC自动机和fail树 然后每一个串在自动机上跑一遍 然后就是对应的节点到fail树根的路径的并都加一 路径的并有一个很好地idea 可以用两种dfs序 入栈序和出栈序 入栈序小于等于子树的last 减去 出栈序小于自己的 就是到根的路径 #include #include #include //#define dprintf(...) fprintf(stderr,__V原创 2016-08-05 15:02:56 · 546 阅读 · 0 评论 -
[dfs序 树状数组] BZOJ 1103 [POI2007]大都市meg
大水题 据说树链剖分可暴力过? #include #include #include using namespace std; inline char nc() { static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==p2) re原创 2016-06-27 11:54:59 · 321 阅读 · 0 评论 -
[广义后缀自动机 set启发式合并 || dfs序 树状数组 离线] BZOJ 2780 [Spoj]8093 Sevenk Love Oimaster
可以直接用[广义后缀自动机] BZOJ 3473 字符串 & BZOJ 3277 串 & Codeforces 204E #129 (Div. 1) E. Little Elephant and Stringsset启发式合并的方法 还有一种是离线做法 通过dfs序转化为一段区间内不同数字的数量 就是 [SDOI2009]HH的项链的经典做法啦#include<cstdio> #includ原创 2017-01-29 22:36:31 · 556 阅读 · 0 评论 -
[主席树] BZOJ 4771 七彩树
感谢带我飞的rxd大爷我们先考虑不管深度限制可修改我们怎么做就是把每种颜色按照dfs序排列 然后给这些点都+1 但是相邻两个的lca处要-1 这样子树不同颜色数就是子树和然后我们把深度限制 看做按照深度的顺序加点 加点我们需要维护什么 每种颜色的序列 这个用set或平衡树 在序列中插入 我们对前驱后继lca什么瞎处理一通 然后记一下这个版本 也就是在主席树上修改然后一个深度限制 就相当于到那个深度原创 2017-03-12 11:44:25 · 716 阅读 · 0 评论 -
[环套树 bfs序] ICPC 2016 Shenyang J & HDU5957 Query on a graph
按层建线段树,或者说是bfs序。 然后修改的一定是不超过5层里面的连续的段,可以在线段树上直接修改。 对于环+树,把环抠出来之后按树的方法做。代码丑#include<cstdio> #include<cstdlib> #include<algorithm> using namespace std; typedef long long ll;inline char nc(){ static c原创 2017-03-29 07:44:35 · 678 阅读 · 0 评论