⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1421.cpp

📁 杭电 acm部分代码 有兴趣的可以下载 谢谢
💻 CPP
字号:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int obj[2010];
int dp[2010][1010];
int n, k;

int cmp(const void *p, const void *q)
{
    return (*(int *)p - *(int *)q);
}

int main()
{
	int i, j;
	while (scanf("%d %d", &n, &k) == 2)
	{
		memset(dp, 0, sizeof(dp));

		for (i = 1; i <= n; i++)
		{
			scanf("%d", &obj[i]);
		}

		qsort(obj + 1, n, sizeof(long), cmp);

		for (i = 1; i <= k; i++)
		{
			for (j = 1; j <= i; j ++)
			{
				dp[2 * i][i] += (obj[2 * j] - obj[2 * j - 1]) * (obj[2 * j] - obj[2 * j - 1]);
			}
			for (j = 2 * i + 1; j <= n; j++)
			{
				int t = dp[j - 2][i - 1] + (obj[j] - obj[j - 1]) * (obj[j] - obj[j - 1]);

				if (t > dp[j - 1][i])
				{
					t = dp[j - 1][i];
				}
				dp[j][i] = t;
			}
		}

		printf("%d\n", dp[n][k]);
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -