我有点n,必须找到k点 ( k <= n)之间的最大联合面积。所以,它是这些点面积的总和减去它们之间的公共面积。
] 1
假设我们有n=4, k=2。如上图所示,面积是从每个点到原点计算的,最终面积是 B 面积与 D 面积之和(只计算它们相交的面积一次)。没有一点被支配
我已经实现了一个自底向上的动态编程算法,但它在某处有错误。这是打印出最佳结果的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct point {
double x, y;
} point;
struct point *point_ptr;
int n, k;
point points_array[1201];
point result_points[1201];
void qsort(void *base, size_t nitems, size_t size,
int (*compar)(const void *, const void *));
int cmpfunc(const void *a, const void *b) {
point *order_a = (point *)a;
point *order_b = (point *)b;
if (order_a->x …Run Code Online (Sandbox Code Playgroud)