摘要: 动态树的基本操作: 1. 添边、删边。 2. 修改一棵树一条链的权值。 3. 给一棵树一条链的权值加上一个数。 4. 查询一棵树一条链上的点,第二大权值、权值第二大点的个数。 1 #include<bits/stdc++.h> 2 #define lc c[x][0] 3 #define rc c[ 阅读全文
posted @ 2020-08-15 21:32 --HY-- 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 首先预处理出以每条边i作为左端点,在最短的区间内能形成环的最小右端点,标记为 Ri,如果不存在这样的右端点(即从当前到结尾所有边都不能组成环), 则让 Ri = m + 1。 用动态树来删边、加边和判环。尽量拓展右端点,直到发现环,然后就删掉左端点所在的边并移动左端点(有点像单调队列),不断重复这个 阅读全文
posted @ 2020-08-15 17:09 --HY-- 阅读(333) 评论(0) 推荐(0) 编辑