小编Mic*_*s77的帖子

从具有最大面积的 n 个子集中找出 k 个

我有点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)

c algorithm dynamic-programming bottom-up

9
推荐指数
1
解决办法
213
查看次数

标签 统计

algorithm ×1

bottom-up ×1

c ×1

dynamic-programming ×1