摘要: Pro:https://www.luogu.com.cn/problem/CF1039D 给定一棵树,对于$1<=k<=n$求最多能在这棵树上选出多少条边不相交的路径。 Sol: 对于给定的k,显然有一个$O(n)$的贪心做法。 然后考虑设fi表示k=i时的答案,显然有$fi<=n/i$。 对于i< 阅读全文
posted @ 2019-01-20 15:39 Creed-qwq 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 首先,有一个很暴力的nk的做法,就是对每种颜色分别开棵lct来维护。 实际上,有复杂度与k无关的做法。 感觉和bzoj4025二分图那个题的区别就在于这个题是边dfs线段树边拆分区间。 阅读全文
posted @ 2019-01-20 13:15 Creed-qwq 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 这里的并查集是按秩合并并查集。 这种方法维护生成树的时候可以维护一个点到根的权值。 但是由于合并的时候做了一个类似换根一样的操作,因此这个权值通常只能是异或之类的。 //find-union-set int top,f[N],v[N],sz[N],sk[M]; int find(int x){ret 阅读全文
posted @ 2019-01-20 12:06 Creed-qwq 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 首先我们发现,本题具有可二分性。若花费x可以完成,x+1也一定可以完成。 那么判断是否可行,可以把二分得到的mid作为下限,仅连接边权大于等于mid的边,如果这样的图有环,那么向上二分,否则向下。 这样的正确性显然,因为如果图是一个DAG,那么剩下的边始终从拓扑序小的向大的连,这样就不会出现环。 输 阅读全文
posted @ 2019-01-20 00:09 Creed-qwq 阅读(165) 评论(0) 推荐(0) 编辑