平面上有N 个点, 第i个点的坐标是(x[i], y[i]). 给你M种正方形, 第i种正方形的边长是sides[i] ,费用是cost[i]. 现在要你用这些正方形,把所有的点都套在正方形内(点在正方形边框上也可以), 至少要花费多少钱?同一种类型的正方形有无穷多个,随便你用,用一个就要给一个的钱.
输入格式:
多组测试数据.
第一行: 一个整数t,表示有t组测试数据. 1 <= t <=5.
每组测试数据格式如下:
第一行:一个整数N. 1 <= N <= 16.
接下来有N 行,每行两个整数:x[i]、y[i]。
0<= x[i]、y[i]<=10^9
接下来一行,一个整数M. 1 <= M <= 50.
接下来有M行,每行两个整数:cost[i] 和sides[i].
1 <= sides[i]<=10^9; 1 <= cost[i] <= 10^8.
输出格式:
共t行,每行一个整数,表示最少花费。
输入样例: cover.in | 输出样例:cover.out |
3 2 1 1 100 100 2 3 100 1 1 2 1 1 100 100 2 1 100 1 1 4 0 0 100 0 201 1 300 0 3 6 1 100 100 10 99 | 2 1 22 |
完整的题解ppt已经放到网上了:
下面贴我写的代码: