10 2016 档案

bzoj 2648 SJY摆棋子 kd树
摘要:题目链接 初始的时候有一些棋子, 然后给两种操作, 一种是往上面放棋子。 另一种是给出一个棋子的位置, 问你离它最近的棋子的曼哈顿距离是多少。 写了指针版本的kd树, 感觉这个版本很好理解。 阅读全文

posted @ 2016-10-25 09:54 yohaha 阅读(164) 评论(0) 推荐(0)

hdu 2966 In case of failure k-d树
摘要:题目链接 给n个点, 求出每个点到离它最近的点的距离。 直接建k-d树然后查询就可以 感觉十分神奇... 明白了算法原理但是感觉代码还不是很懂... 阅读全文

posted @ 2016-10-21 22:50 yohaha 阅读(159) 评论(0) 推荐(0)

codeforces 713D D. Animals and Puzzle 二分+二维rmq
摘要:题目链接 给一个01矩阵, 然后每个询问给出两个坐标(x1, y1), (x2, y2)。 问你这个范围内的最大全1正方形的边长是多少。 我们dp算出以i, j为右下角的正方形边长最大值。 然后用二维st表预处理出所有的最大值。 对于每个询问, 我们二分一个值mid, 查询(x1 + mid -1, 阅读全文

posted @ 2016-10-04 10:31 yohaha 阅读(294) 评论(0) 推荐(0)

bzoj 1188 : [HNOI2007]分裂游戏 sg函数
摘要:题目链接 给n个位置, 每个位置有一个小球。 现在两个人进行操作, 每次操作可以选择一个位置i, 拿走一个小球。然后在位置j, k(i<j<=k)处放置一个小球。 问你先进行什么操作会先手必胜以及方法数量。 感觉这题好神 如果一个位置有偶数个小球, 那么等价于这个位置没有小球。 因为第二个人可以进行 阅读全文

posted @ 2016-10-02 15:31 yohaha 阅读(318) 评论(0) 推荐(0)

bzoj 1912 : [Apio2010]patrol 巡逻 树的直径
摘要:题目链接 如果k==1, 显然就是直径。 k==2的时候, 把直径的边权变为-1, 然后在求一次直径。 变为-1是因为如果在走一次这条边, 答案会增加1. 学到了新的求直径的方法... 阅读全文

posted @ 2016-10-01 20:34 yohaha 阅读(220) 评论(0) 推荐(0)

uva 10304 - Optimal Binary Search Tree 区间dp
摘要:题目链接 给n个数, 这n个数的值是从小到大的, 给出个n个数的出现次数。 然后用他们组成一个bst。访问每一个数的代价是这个点的深度*这个点访问的次数。 问你代价最小值是多少。 区间dp的时候, 如果l >= r, 那么返回0, l == r-1, 返回两个数中小的一个。 其他情况的话枚举分界点进 阅读全文

posted @ 2016-10-01 18:49 yohaha 阅读(289) 评论(0) 推荐(0)

导航