关键词:并查集,二分图,搜索。
例题一:
CodeForces-85E:Guard Towers
题意:给定平面上N个点(N<=5000),以及N个点的坐标。现在可以把每个点染成红色或者蓝色。求最小化同色点的最大距离,且求出相应的方案数。
思路:二分答案L,把距离大于等于L的连边,然后判定是否是二分图。 对于求方案数,这个先不管它。
(当然,最优的解法是转化为切比雪夫距离,复杂度极低,这个也先不管它。)
例题二:
CodeForces-164D:Minimum Diameter
题意:给定平面上N个点(N<=1000),以及N个点的坐标。给定K,求删去K个点后,最小化的最远距离。
思路:同上,二分答案,把大于等于L的连边,然后就是求最小点覆盖,即每条边至少有一个点被覆盖(删去)。但是没有规律的无向图的最小点覆盖是NP问题,只能暴力,这里小小的优化一下,如果一个点的入度是1,那么显然覆盖那边边的另一个点。
如果没有见过,两个代码都不是那么好实现(特别是第二个,哭晕)。