本题细节错的较多。

#include<algorithm>
#include<iostream>
#include<cmath>
#define inf 20000000
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
using namespace std;
const int maxn=250;
int miin(int a,int b){return a<b?a:b;}

struct Bk{
    int h,d;
    bool operator < (const Bk &b)const{
        return h<b.h;
    }
}shu[maxn];
int n,K,Ans,a[maxn],f[maxn][maxn];
int main(){
    cin>>n>>K;
    K=n-K;
    if(K==0){
        cout<<0;
        return 0;
    }
    rep(i,1,n)cin>>shu[i].h>>shu[i].d;
    sort(shu+1,shu+n+1);//
    rep(i,1,n)//这三行多次因为调试删掉后忘了加回来,调试应注释掉而不是删掉
        a[i]=shu[i].d;//
    rep(i,0,n)
        rep(k,0,K)
            f[i][k]=inf;
    rep(i,1,n)f[i][1]=0;
    rep(i,2,n)
        for(int k=2;k<=i&&k<=K;k++)
            rep(j,k-1,i-1)
                f[i][k]=miin(f[i][k],f[j][k-1]+abs(a[i]-a[j]));
    Ans=inf;
    rep(i,K,n)//
    Ans=miin(f[i][K],Ans);//应注意f[i][j]表示1-i中选k个且第k个是i的取法,需遍历一遍f[i][k]。
    cout<<Ans;//
    return 0;
}