T飞了??
查看原帖
T飞了??
545516
Habseligkeit楼主2022/12/12 20:00
#include<bits/stdc++.h>

using namespace std;

const int N = 550;
int n , k , ans , f[N][N];

struct node {
	int x , y;
}a[N]; 

int cmp(node a , node b) {a.x == b.x ? a.y > b.y : a.x > b.x;}

int main() {
	scanf("%d %d" , &n , &k);
	for (int i = 1; i <= n; i ++) 
	  scanf("%d %d" , &a[i].x , &a[i].y);
	
	sort(a + 1 , a + n + 1 , cmp);
	
	for (int i = 1; i <= n; i ++) 
	  for (int j = 0; j <= k; j ++) 
		for (int p = 1; p < i; p ++) {
			int x1 = a[i].x , y1 = a[i].y , 
			  x2 = a[p].x , y2 = a[p].y;
			int dis = abs(x2 - x1) + abs(y2 - y1) - 1;
			if(dis > j) continue;
			f[i][j] = max(f[i][j] , f[p][j - dis] + dis + 1);
			ans = max(ans , f[i][j] + (k - dis));
		}
		
	printf("%d\n" , ans);
	return 0;
}
2022/12/12 20:00
加载中...