【JZOJ 5049】 腐女的生日

35 篇文章 0 订阅
4 篇文章 0 订阅

Description

腐女要过生日了,pty 想给腐女送礼物,但是腐女所在的教室离pty 的教室太远了,于是pty就拜托会动归和A星的djy帮忙送礼物。djy在学校建立了一个平面直角坐标系,他站在了(0,0)点,腐女在(x0,y0)点,djy每次只能往上下左右四个方向移动一步,中间有n栋矩形教学楼,每个教学楼给出两个对角的坐标,并且保证每栋教学楼的周围区域(如图所示)不会有别的教学楼,即djy可以绕一个教学楼走不会碰到任何障碍,现在djy 想知道从起点到终点不碰到任何教学楼,最短需要多少步。
这里写图片描述
100%的数据保证:n<=10^5
保证所有的y坐标在[-10^6,10^6]
所有的x坐标在[0,10^6]

Analysis

首先,移动的距离包括横着走跟竖着走移动的距离
发现除了如下图一种情况外,其余都只会往右走
这里写图片描述
这种情况也只需往左走一步,可以特判掉
考虑扫描线,从左到右不会折返,用一颗线段树记录到达扫描线不同高度的纵坐标花费
出现矩阵把对应区间赋为正无穷,消失矩阵重新更新(赋值),发现只能从矩阵外两端走过来
是两个一次函数,找出分界点用线段树维护(一次函数赋值标记)即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值