P8816 [CSP-J 2022] 上升点列

该博客讨论了一道编程竞赛题目,涉及在二维平面上给定一定数量的整数点,并允许添加额外点来构造一个满足特定条件的点列。点列要求相邻两点间欧几里得距离为1,且横纵坐标均单调不减。题目要求求解满足条件的最大序列长度。博主分享了输入输出格式、样例及数据范围,并给出了部分代码实现思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# [CSP-J 2022] 上升点列

## 题目背景

**由于众所周知的原因,官方数据现置于子任务 0,剩余的子任务为民间数据。**

## 题目描述

在一个二维平面内,给定 $n$ 个整数点 $(x_i, y_i)$,此外你还可以自由添加 $k$ 个整数点。

你在自由添加 $k$ 个点后,还需要从 $n + k$ 个点中选出若干个整数点并组成一个序列,使得序列中任意相邻两点间的欧几里得距离恰好为 $1$ 而且横坐标、纵坐标值均单调不减,即 $x_{i+1} - x_i = 1, y_{i+1} = y_i$ 或 $y_{i+1} - y_i = 1, x_{i+1} = x_i$。请给出满足条件的序列的最大长度。

## 输入格式

第一行两个正整数 $n, k$ 分别表示给定的整点个数、可自由添加的整点个数。

接下来 $n$ 行,第 $i$ 行两个正整数 $x_i, y_i$ 表示给定的第 $i$ 个点的横纵坐标。

## 输出格式

输出一个整数表示满足要求的序列的最大长度。

## 样例 #1

### 样例输入 #1

```
8 2
3 1
3 2
3 3
3 6
1 2
2 2
5 5
5 3
```

### 样例输出 #1

```
8
```

## 样例 #2

### 样例输入 #2

```
4 100
10 10
15 25
20 20
30 30
`&#

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值