BZOJ-2716-天使玩偶angel-CDQ分治
来源:互联网 发布:淘宝怎么举报别人盗图 编辑:程序博客网 时间:2024/05/01 08:14
描述
先给出n个点, 然后有m个操作, (1, x, y) 表示查询离(x, y)最近点的曼哈顿距离, (2, x, y) 表示插入点 (x, y).
分析
- 不会做... 又照着别人的代码打了一遍... CDQ分治总想不到思路
- 比较关键的几个地方是 : 1. 坐标的范围是小于1000000的所以可以用树状数组维护. 2. 距离点(x, y)最近的点和x的方位有四种, 左下左上右下右上, 然后只考虑一个方位, 另外的改变坐标即可. 3. 曼哈顿距离不是欧几里得距离, 是横纵坐标之差绝对值的和. dis({x, y}, {x', y'}) = |x-x'| + |y-y'|. 在只考虑(x', y')在(x, y)的左下方时, 可以去掉绝对值 : dis = x+y - (x'+y'), 使x'+y'最大即可.
- 分治时始终保持横坐标递增, 分治时考虑左边对右边的影响, 上面说了要使dis = x+y - (x'+y')的x'+y'最大, 就按 x' 排序按 y' 用树状数组维护x'+y'的最大值. 在树状数组中查询小于y的最大x'+y'值.
代码
2 0
- BZOJ-2716-天使玩偶angel-CDQ分治
- [BZOJ2716][天使玩偶angel][CDQ分治]
- bzoj 2716 天使玩偶 CDQ分治
- BZOJ 2716 Violet 3 天使玩偶 CDQ分治
- bzoj 2716: [Violet 3]天使玩偶(cdq分治)
- [BZOJ]2716: [Violet 3]天使玩偶 CDQ分治+树状数组
- 【bzoj 2716】[Violet 3]天使玩偶 (cdq分治+树状数组)
- [BZOJ 2716]天使玩偶
- [BZOJ2716][Violet 3]天使玩偶(cdq分治+bit)
- [BZOJ2716][Violet 3]天使玩偶 CDQ分治+树状数组
- BZOJ2716: [Violet 3]天使玩偶(CDQ分治)
- bzoj2716 [Violet 3]天使玩偶(CDQ分治)
- 【BZOJ 2716/2648】 [Violet 3]天使玩偶
- BZOJ 2716 [Violet 3]天使玩偶 KDtree
- 【BZOJ 2716&2648】[Violet 3]天使玩偶 k-d tree
- 【BZOJ 2716/2648】 [Violet 3]天使玩偶 SJY摆棋子
- bzoj 3262(cdq分治)
- bzoj 1176(cdq分治)
- hadoop2理解读取文件在流程
- C. Hamburgers
- shell 下 ls 命令的各种使用说明
- APP创业——时不待人
- BZOJ 3897 Power 分治
- BZOJ-2716-天使玩偶angel-CDQ分治
- Reverse Integer
- ASP.NET MVC的JsonResult
- 第一章第8小题
- android 图片处理(截取,缩放)
- P51 14题,计算斐波那契分数序列前n项和
- 严正声明
- Remove Duplicates from Sorted List II
- 树状数组(一)