雅礼集训Day3T2

题意:n个点的图,每个点有权值,有一定值m,两点a,b间有边当且仅当val[a]+val[b]>=m,将此图的点分为两部分,求两部分间的最大边数。


根据连边条件,val>=m/2的所有点(记为A)构成了一个完全图,其他点(记为B)只与val>=m/2的点有连边。

先不考虑B,A中的点可以贪心通过DP求最大边数(尽管可以O(1)求),F[i][j]表示某一个集合有j个点在最大的i个点中时的最大边数。可以发现B中每个点只会与A中最大的K个点有连边,在求F[K][j]时贪心加入即可。

猜你喜欢

转载自blog.csdn.net/qq_35950004/article/details/80913685
今日推荐