
差分
Chester_King
虽千万人,吾往矣。
展开
-
【BZOJ】4390 [Usaco2015 dec]Max Flow LCA+树上差分
题目传送门树上差分是个好东西,“可以让复杂的题目变的简单许多”——来自ZZK。先切一道比较裸的树上差分,为接下来的“NOIP2015运输计划”做准备。这题题意非常清楚,给定一棵树,每次给一条路径上所有点权加一,求所有操作后的最大点权。考虑树上差分,每次在给定的两个点xx和yy上打上+1+1的标记,在lca(x,y)lca(x,y)和lca(x,y)lca(x,y)的父亲上打上−1-1的标记。最后遍历原创 2017-10-17 18:34:04 · 247 阅读 · 0 评论 -
【BZOJ】4326 NOIP2015 运输计划 二分+LCA+树上差分
题目传送门有了之前的铺垫,突然发现这题还是挺水的诶。(逃)题目要求最大时间的最小值,想到了二分,但是怎么去判断二分出来的值呢?我们开两个数组sumsum和vv,sumsum数组表示每条边的标记值,vv表示每条边的权值。我们把这两个本来是边的值转化到每条边深度较大的节点上,这个显然没有对答案产生影响,并且可以简化代码。现在我们要判断二分出来的值midmid,显然路径的权值和w≤midw \leq mi原创 2017-10-17 21:44:49 · 232 阅读 · 0 评论 -
【BZOJ】4719 [Noip2016]天天爱跑步 LCA+树上差分
题目传送门曾今考过的一场模拟赛中的题目,当时的我只会打暴力,还是那种非常低级的暴力,连8080分都没有……这题的正解是LCALCA+树上差分。观察题目给出的子问题,20%的数据起点为1,20%的数据终点为1。根据这些信息我们想到了什么?没错,把一条路径分成stst到lcalca的路径和lcalca到eded的路径。考虑一个在stst到lcalca的路径上的观察员ii观察到了这个人,可以得到等式dee原创 2017-10-18 16:01:35 · 389 阅读 · 0 评论 -
【BZOJ】3631 [JLOI2014]松鼠的新家 LCA+树上差分
题目传送门再水一篇blog,可能也是我专门去学树上差分的最后一题吧。一开始拿到题目,并没有想到树上差分的做法,看了题解之后:原来差分还可以这么用的啊,又学到了一种黑科技。对于相邻的两个房间,直接和“【BZOJ】4390 [Usaco2015 dec]Max Flow”这题一样差分就好了。(真的就好了吗?)重新考虑一下,发现从第ii个房间走到第i+1i+1个房间和从第i+1i+1个房间走到第i+2i+原创 2017-10-22 20:42:18 · 270 阅读 · 0 评论 -
【BZOJ】3932 [CQOI2015]任务查询系统 主席树+差分
题目传送门这题嘛,就是主席树吧,把一个任务拆成两部分:任务开始的加入操作和任务结束的删除操作。(好像这就是差分了吧)然后如果两个操作在同一个时间点上发生,就直接对当前时间节点的树根进行修改;否则就在两个操作时间点之间的时间点上覆盖为前一个操作时间点的主席树根。(话说一开始我还不知道为什么要有这个覆盖的……智商已下线)然后就是一些普通的主席树操作了吧,直接写掉就行了。附上AC代码:#include <原创 2018-01-03 20:43:38 · 272 阅读 · 0 评论