
拓扑排序
文章平均质量分 80
commonc
这个作者很懒,什么都没留下…
展开
-
BZOJ4383: [POI2015]Pustynia
题目大意:给出一些限制条件,每个限制条件都是一个区间内k个数比另外一些都大,问合不合法 题目落下个条件 ∑k≤30W 首先把这些限制条件拆开,每个不连续的区间拆成O(K)个连续的区间,然后就变成了KlogK个限制条件,每个条件是一个数比一段区间里的数都大 这个可以连了边之后用记忆化搜索拓扑序Dp就好了 但是连边是O(N^2)级别的,怎么办呢? 就可以用线段树优化建图啦! 首原创 2016-05-10 09:26:49 · 1443 阅读 · 0 评论 -
BZOJ2215: [Poi2011]Conspiracy
题目大意:给定一张无向图,要求你把图中的每个点染成红色或蓝色,使得红色的点形成一个团,蓝色的点形成一个独立集 首先假设我们已经求出了一组可行解,那么其他方案至多是本方案中从后勤和同谋组各出一个人进入对方组,因为一旦从某一组出来两个就一定不满足题意 这时我们考虑处理出每个人是否只与对面集合中的一个人冲突,然后分类三种情况(只有后勤去同谋,只有同谋去后勤,两边交换一个人)枚举就可以了。原创 2016-08-25 07:48:24 · 932 阅读 · 0 评论 -
BZOJ3832: [Poi2014]Rally
题目大意:给你一个DAG,让你删掉一个点,使得图中最长路最短 这是一道神题啊,不上网搜题解我是肯定不会做.... 首先新建超级源汇,问题就变成了求删掉一个点后,超级源点到超级汇点的最长路最短是多少 首先需要想到,任意的割集都会把至少一条从源到汇的最长路上的边割掉 所以我们可以先计算出源点到所有点的最长路以及所有点到汇点的最长路 然后为每个边赋一个权值,权值=源点到起点的最长路+终原创 2016-05-13 09:08:39 · 1308 阅读 · 0 评论