Robot Queries

从这道题目的官解,我们可以再次复习一下:转换对象

可以看一看这道题目的官解,也挺自然的(dictionary就是map)

然后说一下我的做法

很明显地发现,[1,l1][r+1,n]是不被影响的,而且[l,r]翻转之后,起点和终点也是不变的(官解也利用了这个思想),所以对一个询问的点(x,y),我们考虑其是否在[1,l1],[l,r],[r+1,n]这三段区间出现即可

我们先来考虑中间这一段,手搓几次就可以发现,这原来的序列经过了(x0,y0),并且[l,r]的起点终点分别是(x1,y1),(x2,y2),那么翻转之后的序列一定会经过(x1+x2x0,y1+y2y0)(就是作起点终点的中点的对称点,相当于翻转了一百八十度)

综上,对一个询问(x,y),我们分别统计在[1,l1],[l,r],[r+1,n]是否分别出现对应的点即可

但是这个统计方法,我赛时的时候以序列为对象,用到了前缀和,非常复杂;然而如果像官解一样,以坐标为对象统计,就非常简单了

posted @   最爱丁珰  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示