"传送门" 一道线段树合并 首先不难看出树上差分 我们把每一次修改拆成四个,在$u,v$分别放上一个,在$lca$和$fa[lca]$各减去一个,那么只要统计一下子树里的总数即可 然而问题就在于怎么统计。直接暴力肯定是要咕咕的,那么线段树合并就派上用场了 总之就是每个点开一个动态开点线段树,然后一遍 ...
分类:
其他好文 时间:
2018-11-27 01:32:53
阅读次数:
279
<button class="btn btn-primary" type="button" onclick="openword()"><i class="fa fa-file-word-o" style="margin-right:5px;"></i>生成word</button> ...
分类:
Web程序 时间:
2018-11-25 16:27:16
阅读次数:
156
建回文自动机,注意到一个回文串是可以通过一个长度小于等于这个串长度的一半的回文串添上一些字符然后复制得到的,也就是在自动机上向fa走,相当于treedp 每次都走显然会T,记录一个up,指向祖先中最下长度符合要求的回文后缀,这样每次找最多跳一次,所以是O(n)的,还有child的清空动态的做,也就是 ...
分类:
其他好文 时间:
2018-11-25 11:38:22
阅读次数:
185
主席树上树 写起来有点麻烦 这题两个操作 一个是查找路径上的第k大 一个是连边 首先处理树上路径第k大 如果要找$u v$的第k大 那么一棵主席树u表示的是点u到根的每个权值出现了几次 所以求树上路径第k大就可以直接用$T_u + T_v T_{lca(u,v)} T_{fa(lca(u,v))}$ ...
分类:
其他好文 时间:
2018-11-24 18:03:54
阅读次数:
236
建个SAM,符合要求的串显然是|right|==1的节点多代表的串,设si[i]为right集合大小,p[i]为right最大的r点,这些都可以建出SAM后再parent树上求得 然后对弈si[i]==1的点,考虑它所代表的串是s(p[i] dis[i]+1,p[i])~s(p[i] dis[fa[ ...
分类:
其他好文 时间:
2018-11-24 11:39:48
阅读次数:
213
//最小生成树,Kruskal算法 struct rec { int x; int y; int z; }edge[50010]; int fa[10010],n,m,ans; bool operator >n>>m; for(int i=1;i>T; while(T--) { cin>>n; fo... ...
分类:
编程语言 时间:
2018-11-23 18:34:02
阅读次数:
172
多串LCS~~很适合SA但是我要学SAM~~ 对第一个串求SAM,然后把剩下的串在SAM上跑,也就是维护p和len,到一个点,如果有ch[p][c],就p=ch[p][c],len++,否则向fa找最下的有c[p][c]的p,然后len=dis[p]+1,p=ch[p][c],否则就p=root,l ...
分类:
其他好文 时间:
2018-11-23 10:11:27
阅读次数:
174
在js中,转换成false的有: undefined null NaN '' 0 flase 其他都是true,即使是字符串'false'它也是是true a || b , 条件满足一个就可以,如果a是true,那么b不管是true,false都返回true,因此就不用判断b了,返回a 如果a是fa ...
分类:
Web程序 时间:
2018-11-22 17:15:17
阅读次数:
249
反正肯定要建虚树,考虑建完之后怎么做 先随便dp一下算出来距离某点最近的询问点mi[x](因为有的虚树上的点它不是询问点嘛) 那我们对于某条链x到fa[x]上的非虚树上的点(包括他们的非虚树上的孩子),要么把它分给mi[x],要么分给mi[fa[x]] 我找到这个中间点以后,在原树上倍增跳过去,算他 ...
分类:
其他好文 时间:
2018-11-21 22:25:54
阅读次数:
258
SRAtoolkit download .fa fastqc STAR samtools index visualize DEseq2: differential expression prepare: featureCounts count reads normalizion ...
分类:
其他好文 时间:
2018-11-21 22:23:44
阅读次数:
364