题解,求关注
2024-07-10 14:06:15
发布于:浙江
5阅读
0回复
0点赞
#pragma GCC optimize("O2")
#include <bits/stdc++.h>
using namespace std;
#define TLE (double)clock() / CLOCKS_PER_SEC <= 0.95
#define int long long
#define double long double
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;
const int N = 1e2 + 5, M = 1e5 + 5, S = 1e6 + 5, inf = 0x3f3f3f3f3f3f3f3f, mod = 1e9 + 7;
int n, k;
int f[N][N];
struct node
{
int h, w;
bool operator<(const node &x)
{
return h < x.h;
}
} p[N];
void solve()
{
cin >> n >> k;
k = n - k;
for (int i = 1; i <= n; i++)
{
cin >> p[i].h >> p[i].w;
}
sort(p + 1, p + 1 + n);
memset(f, inf, sizeof f);
for (int i = 1; i <= n; i++)
{ // 单独选择留下任何一本书,都不会有花费
f[i][1] = 0;
}
for (int i = 2; i <= n; i++)
{
for (int j = 2; j <= min(i, k); j++)
{
for (int op = j - 1; op < i; op++)
{
f[i][j] = min(f[i][j], f[op][j - 1] + abs(p[i].w - p[op].w));
}
}
}
int answer = inf;
for (int i = k; i <= n; i++)
{
answer = min(answer, f[i][k]);
}
cout << answer << endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0); // cin.tie(nullptr);
int T = 1;
// cin >> T;
for (int i = 1; i <= T; i++)
{
solve();
}
return 0;
}
这里空空如也
有帮助,赞一个