摘要: 一道好题~~ 一个点到根传染需要的时间是这段路径上不同颜色的数目,一个点子树到根平均传染时间就是加权平均数了(好像是废话)。 所以只要用线段树维护dfs序就这个可以了,换根的话一个点的子树要么在dfs序中不变,要么被截成了[1,l)和(r,n]两段(当这个点为当前root的祖先),l和r即为包含当前 阅读全文
posted @ 2017-02-15 11:38 SD_le 阅读(340) 评论(0) 推荐(0) 编辑
摘要: f[i][j]表示i接j后面的最长长度,枚举中间的那个数用个hash表转移就行了。 水题。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<map> #define N 2005 u 阅读全文
posted @ 2017-02-15 11:21 SD_le 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 这道题用到了Kruskal重构树,有个性质是这棵树是一个大根堆,而且每个点所能延伸出去的联通块在树的dfs序中是连续的一段,所以就可以用主席树维护了。 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<c 阅读全文
posted @ 2017-02-15 11:19 SD_le 阅读(171) 评论(0) 推荐(0) 编辑
重置按钮