求助P8816,25pts,悬1关
  • 板块学术版
  • 楼主Frielen
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/9/9 13:56
  • 上次更新2024/9/9 20:06:50
查看原帖
求助P8816,25pts,悬1关
1125685
Frielen楼主2024/9/9 13:56

代码:

#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内调出变猫娘

2024/9/9 13:56
加载中...