求大佬帮调!
查看原帖
求大佬帮调!
654763
smallpeople楼主2024/4/2 18:56
#include<bits/stdc++.h>
using namespace std;

struct edge
{
	int x,y;
}e[505];
int n,k,ans;
int f[505][505];

bool cmp(edge a,edge b)
{
	if(a.x == a.x)return a.y < b.y;
	else return a.x < b.x;
}

int main()
{
	cin>>n>>k;
	for(int i = 1;i <= n;i ++)
		cin>>e[i].x>>e[i].y;
	
	sort(e + 1,e + n + 1,cmp);
	
	for(int i = 1;i <= n;i ++)
	{
		for(int j = 0;j <= k;j ++)
		{
			f[i][j] = j + 1;		//这里就是初始化 
			for(int t = 1;t < i;t ++)
			{
				if(e[t].x > e[i].x || e[t].y > e[i].y)continue;
				
				int l = abs(e[i].x - e[t].x) + abs(e[t].y - e[i].y) - 1;
				
				if(j - l < 0)continue;
				
				f[i][j] = max(f[i][j],f[t][j - l] + l + 1);
				ans = max(ans,f[i][j] + k - j);
			}
		}
	}
	
	cout<<ans;
	
	return 0;
}

连样例1都过不去。。。

2024/4/2 18:56
加载中...