题目名称 3696. 耍猴游戏
输入输出 monkeygame.in/out
难度等级 ★★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarlihaoze 于2022-06-30加入
开放分组 全部用户
提交状态
分类标签
分享题解
通过:1, 提交:3, 通过率:33.33%
Gravatarop_组撒头屯 100 0.243 s 7.05 MiB C++
Gravatarop_组撒头屯 90 0.377 s 6.97 MiB C++
Gravatarop_组撒头屯 90 0.421 s 6.97 MiB C++
本题关联比赛
EYOI与SBOI开学欢乐赛10th
关于 耍猴游戏 的近10条评论(全部评论)
本来是为了暑期训练比赛准备的题,还把题解写好了,但是无奈因为疫情原因取消了,就直接把题解放出来吧 耍猴游戏
这一题和天使玩偶那一题很像,也可以做一做,还有 kd tree 解法,可以参考我的博客 Chumeng's Blog
Gravatarlihaoze
2022-08-03 09:58 1楼

3696. 耍猴游戏

★★★   输入文件:monkeygame.in   输出文件:monkeygame.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目背景】

小 lhz 喜欢在下课的时候和神犇们一起玩 “耍猴” 游戏。具体来说,神犇们会互相传递一个足球,当小 lhz 追到足球时,“猴” 就会换人。 

然而,小 lhz 的视力实在太差了,不知道足球在哪个神犇脚下,只知道各个神犇的位置,有的时候,神犇们在机房卷不动了,就会加入 “耍猴” 游戏的队伍,面对越来越多的神犇,小 lhz 必须抓紧时间了! 

你的任务,就是写一个程序,让小 lhz 找到最近的神犇。

【题目描述】

我们把小 lhz 和神犇们踢球的地方看作一个二维平面直角坐标系,而神犇会不定时的在某个点 $(i, j)$ 加入游戏。 

小 lhz 会问你,假如他在一个点 $(x, y)$ ,那么他最近的神犇离他有多远? 

小 lhz 只会沿着平行于坐标轴的方向移动,所以我们定义两个点的距离为曼哈顿距离。

【输入格式】

第一行包括两个整数 $n$ 和 $m$,刚开始的时候,已经有 $n$ 个神犇在游戏中,接下来有 $m$ 个操作。 接下来 $n$ 行,每行有两个非负整数 $x$ 和 $y$,表示 $n$ 神犇们的位置。 在接下来 $m$ 行,每行有三个非负整数 $t$, $x$,$y$。 如果 $t = 1$,表示有一个神犇加入了游戏,它的位置为 $(x, y)$ 。 如果 $t = 2$,表示小 lhz 询问他如果在 $(x, y)$,那么他最近的神犇离他有多远?

【输出格式】

对于每个操作 $t = 2$,输出一行一个整数,表示小 lhz 最近的神犇的距离。

【样例输入】

2 3
1 1
2 3
2 1 2
1 3 3
2 4 2

【样例输出】

1
2

【数据规模与约定】

$n, m \leq 5 \times 10^4$,$x, y \leq 1 \times 10^5$