其他分享
首页 > 其他分享> > 【做题记录】CF1045G AI robots

【做题记录】CF1045G AI robots

作者:互联网

题目:

火星上有 \(n\) 个机器人排成一行,第 \(i\) 个机器人的位置为 \(x_{i}\),视野为 \(s_{i}\),智商为 \(q_{i}\)。我们认为第 \(i\) 个机器人可以看到的位置是 \([x_{i}-s_{i},x_{i}+s_{i}]\)。

如果一对机器人相互可以看到,且它们的智商 \(q_{i}\) 的差距不大于 \(k\),那么它们会开始聊天。

为了防止它们吵起来,请计算有多少对机器人可能会聊天。

\(n\le 10^5,0\le k\le 20\)。

题解:

考虑一对机器人能互相交流的限制:

若 \((i,j)\) 这对机器人能交流,不妨钦定 \(x_i<x_j\),则当且仅当

\[x_i+s_i\ge x_j-s_j,|q_i-q_j|\le k \]

那么这显然是个三维偏序问题。

发现 \(x_i+s_i\ge x_j-s_j\) 这个限制涉及两个元素,考虑将 \(s\) 从大到小排序,那么可以保证若右边的机器人能看见左边的机器人,则左边的必然也能看见右边的。

然后因为 \(k\) 是定量,所以第二维就是以 \(q\) 为关键字排序。

然后记得将位置离散化一下。

标签:le,AI,机器人,robots,ge,CF1045G
来源: https://www.cnblogs.com/trsins/p/15778159.html