AC通道:http://poj.org/problem?id=3565
蚂蚁
Description
题目大意:
给出n个白点和n个黑点的坐标,要求用n条不相交的线段把它们连接起来,其中每条线段恰好连接一个白点和一个黑点,每个点恰好连接到一条线段。如图所示。
Input
第一行为整数n(1≤n≤100)。
以下n行每行包含两个整数,及各白点坐标;
以下n行每行包含两个整数,及各黑点坐标;
坐标均为绝对值不超过10000的整数。
输入保证没有两个坐标相同的点,且任意三点不共线。
所有白点和黑点均按照输入顺序编号为1~n。
Output
输出n行,其中第i行为第i个白点所连接的黑点编号。
Sample Input
5
-42 58
44 86
7 28
99 34
-13 -59
-47 -44
86 74
68 -75
-68 60
99 -60
Sample Output
4
2
1
5
3
Solution
本题可以使用最佳完美匹配解决,请读者自行上网搜索。
我在这里介绍一种分治的方法。
首先,找出所有的点中纵坐标最小的点(如果纵坐标相同,就取横坐标小的点)记作X。
那么,对于所有除了它之外的点I,向量