随笔分类 -  差分

摘要:洛谷P2205 [USACO13JAN]画栅栏Painting the Fence这是我的做法,我用了离散化+二分,比较慢 其实差分就行了,不用二分 虽然时间复杂度也是 nlogn但是因为不用而二分了,所以快了不少大概快了300ms另外也可以用map直接水 阅读全文
posted @ 2017-10-13 07:58 third2333 阅读(230) 评论(0) 推荐(0)
摘要:洛谷P1969 积木大赛 贪心 考虑差分 对区间 [l,r]+1 在差分数组上相当于 d[ l ]++ ; d[ r+1 ]-- ; 那么你得到原数组的差分数组后 当d[ i ] = x 则你需要 对 以 i 为左端点 右端点未知的一个区间加x次且这x加的可能不是同一个区间 所以最后只要将差分数组中 阅读全文
posted @ 2017-07-06 18:37 third2333 阅读(236) 评论(0) 推荐(0)
摘要:洛谷P2680 运输计划 树上差分 LCA 倍增 tarjan 题意 给出若干条路径 你可以把其中的一条边变为 0 求变为 0 后的最短路径 首先发现答案满足单调性 那么就可以二分这个答案 首先我们 用tarjan 或者 倍增等算法 预处理 出两点之间的路径距离 ,以及lca然后我们将两点之间的距离 阅读全文
posted @ 2017-07-03 13:33 third2333 阅读(203) 评论(0) 推荐(0)
摘要:bzoj 3043: IncDec Sequence 差分 转化 题目大意:给定一个序列,提供一个操作:将某个区间内所有数+1或-1求将所有数变成一样最少多少次操作,以及最终可以有多少种数 考虑差分后的序列每次对[l,r]进行+1/-1,相当于在差分后的数组上对l进行+1/-1,然后对r+1进行-1 阅读全文
posted @ 2017-07-03 09:47 third2333 阅读(157) 评论(0) 推荐(0)
摘要:洛谷P3397 地毯 二维差分 与一维差分类似 每次修改相当于只要修改4个地方就可以了 然后将差分数组来一次前缀和就能做好了 阅读全文
posted @ 2017-07-01 16:50 third2333 阅读(197) 评论(0) 推荐(0)
摘要:洛谷P1083 借教室 二分 + 差分(或说前缀和,其实前缀和更准确一点) 首先二分答案,即取 mid 个人,且他们不会冲突 然后O(n) 判断是否冲突 如何判断呢,首先我们发现 一个人的操作相当于是将 一些连续的山削去了一个高度 然后我们可以记录这座山被消了多少高度,但这样一次就要 O(N) 总共 阅读全文
posted @ 2017-06-18 23:26 third2333 阅读(155) 评论(0) 推荐(0)