代码:
#include<bits/stdc++.h>
using namespace std;
struct Node{
int x,y;
}q[509];
int f[509][109];
int n,k,ans;
bool cmp(Node a,Node b){
if(a.x<b.x) return 1;
if(a.x>b.x) return 0;
return a.y<b.y;
}
int mhd(int i,int j){
return q[i].x+q[i].y-q[j].x-q[j].y-1;
}
int main(){
cin>>n>>k;
for(int i=1;i<=n;i++) cin>>q[i].x>>q[i].y;
stable_sort(q+1,q+n+1,cmp);
for(int i=1;i<=n;i++)
for(int j=0;j<=k;j++)
f[i][j]=j+1;
for(int i=2;i<=n;i++)
for(int j=i-1;j>=1;j--){
int s=mhd(i,j);
for(int p=s;p<=k;p++)
f[i][p]=max(f[i][p],f[j][p-s]+s+1);
}
for(int i=1;i<=n;i++) ans=max(ans,f[i][k]);
cout<<ans;
return 0;
}
提交记录
10min内调出变猫娘