摘要: 题目大意:有一棵树根为1,刚开始每条边的权值为1, 现在有m + n - 1 个操作, A :x y , 将x和y相连的边权值变为1, W:x, 询问x到1路径上的权值和。 思路 : 方法一: 用dfs序建立树状数组, 每个点入栈位置的值为1, 出栈为-1, 询问的值就是sum( l [ x ] ) 阅读全文
posted @ 2018-05-07 21:23 NotNight 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 求最长反链裸题 补充一点知识。。 链 : D 中的一个子集 C 满足 C 是全序集 及C中所有元素都可以比较大小 反链 : D 中的一个子集 B 满足 B 中任意非空子集都不是全序集 即所有元素之间都不可以比较大小 链覆盖 : 若干个链的并集为 D ,且两两之间交集为 ∅ 反链覆盖 : 若干个反链的 阅读全文
posted @ 2018-05-07 20:08 NotNight 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个有向图,每个点有一个权值,有一个起点和q个终点,没经过一个点加上这个点的权值,让你选一条路,问你最大值是多少。 思路:tarjan强连通缩个点, 然后在拓扑图上dp一下就好啦, 注意第二次建图建反向边会好一点。 阅读全文
posted @ 2018-05-07 17:01 NotNight 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #define LL long long 3 #define fi first 4 #define se second 5 #define mk make_pair 6 #define pii pair 7 8 using namespace std; 9 10 const int N=2000+7; 11 const int M=1e4+7; 1... 阅读全文
posted @ 2018-05-07 16:00 NotNight 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 二维线段树单点修改板子题 阅读全文
posted @ 2018-05-07 14:25 NotNight 阅读(177) 评论(0) 推荐(0) 编辑