摘要:
传送门 并查集真是一个判断连通的好东西! 连通性用并查集来搞。 把每一条边按照 a 为关键字从小到大排序。 那么直接枚举,动态维护 b 的最小生成树 用 a[i] + 1 ~ n 路径上最大的 b[i] 更新答案即可 ——代码 1 #include <cstdio> 2 #include <iost 阅读全文
posted @ 2017-06-17 21:33
zht467
阅读(157)
评论(0)
推荐(0)
摘要:
传送门 WC这个题真是丧心病狂啊,就是想学习一下怎么处理边权,给我来了这么一个破题! ORZ hzwer 临摹黄学长代码233 但还是复杂的一匹 理一下思路吧 题目大意:给定一个无向图,多次删除图中的某一条边,求两点间路径最大值的最小值 求两点间的路径最大值的最小值的话,可以求最小生成树,那么这个值 阅读全文
posted @ 2017-06-17 18:43
zht467
阅读(169)
评论(0)
推荐(0)
摘要:
传送门 水题 ——代码 1 #include <queue> 2 #include <cstdio> 3 #include <cstring> 4 #include <iostream> 5 #define N 51 6 #define M 100001 7 #define INF 1e9 8 #d 阅读全文
posted @ 2017-06-17 11:17
zht467
阅读(138)
评论(0)
推荐(0)
摘要:
传送门 模板。 ——代码 1 #include <cstdio> 2 #include <iostream> 3 #define N 300001 4 #define get(x) (son[f[x]][1] == (x)) 5 #define swap(x, y) ((x) ^= (y) ^= ( 阅读全文
posted @ 2017-06-17 09:25
zht467
阅读(178)
评论(0)
推荐(0)
摘要:
传送门 处理路径 xor 和的时候可以维护子树 xor 和,先提取出路径,再把一个点 splay 到最上方,直接取子树 xor 和即可。 更新一个点权时可以先提取出根到这个点的路径,把这个点 splay 到最上方,然后 update 即可。 ——代码 1 #include <cstdio> 2 #i 阅读全文
posted @ 2017-06-17 09:11
zht467
阅读(172)
评论(0)
推荐(1)
摘要:
传送门 每个点都会跳到另一个点,连边就是一棵树。 更改弹力就是换边。 求一个点跳多少次跳到终点就是求这个点的深度,那么只需要维护 size 域,access(n + 1) 然后 splay(x),求 size[son[x][0]] 即可, 因为 splay 是以深度为关键字的,所以左端点就是深度比它 阅读全文
posted @ 2017-06-17 08:28
zht467
阅读(166)
评论(0)
推荐(0)

浙公网安备 33010602011771号