#P9809. Fencing the cows
Fencing the cows
Fencing the cows
Problem Description
Little ColdHand wants to build a fence to enclose his cows' grazing area. However, in order for the fence to be effective, it must include all grass locations. Otherwise, the cows might rebel against him. To address this issue, Little ColdHand sought assistance from the Interstellar Cow Company. However, the company provided him with only fence points, and he can only build the fence from a point to another point. The final cost will be the number of points used. Little ColdHand is aware that the most cost-effective fence would be a convex hull, but he doesn't know the exact number of points required for it. Therefore, he has approached you to help solve this problem: Determine the minimum number of points needed to construct a fence that completely encloses all grass-eating locations. P.S. If the fence intersects any of the grass locations, we do not consider those locations as fully enclosed.
Input
The first line of input contains the integer (), the number of test cases. The description of test cases follows. The first line of each test case contains two integers, and () — the number of fence points and the number of grass locations. Each of the next lines contains the description of fence points. Each line contains two integers and (), describes the fence point at (). Each of the next lines contains the description of grass location. Each line contains two integers and (), describes the grass location at (). it is guaranteed that the sum of and over all test cases both do not exceed .
Output
For each test case, if any solution exists, output an integer in a line, indicating the minimum cost of fence. otherwise, output
Sample Input
2
4 1
1 1
1 -1
-1 1
-1 -1
0 0
4 1
1 1
1 -1
-1 1
-1 -1
1 0
Sample Output
4
-1
Source
2023“钉耙编程”中国大学生算法设计超级联赛(2)