标签:le AI 机器人 robots ge CF1045G
-
\(\text{CF1045G AI robots}\)
- 算法:cdq分治
题目:
火星上有 \(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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。