摘要: 本题当然可以用树剖解决,而且是树剖的模板题。但是对于本题来说,有一种更巧妙的办法 树上差分 类似于普通的差分,我们对于题目中的每一条路线i->j,把它拆成i->lca(i,j)->j.然后将i点、j点的权值加一,将lca(i,j)的权值减二 乍看起来没什么毛病,但是仔细想想,对lca(i,j)的子树 阅读全文
posted @ 2019-03-16 19:48 AD_shl 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 这道题洛谷给的标签是LCA,线段树,树链剖分。 当然LCA+树上差分能通过这道题,但出现在树链剖分当中,我决定用树链剖分解决 显然这是一道裸的树链剖分。树剖之后进行区间修改,单点查询操作。(这道题线段树都不用build……23333) 我们按照题目给的顺序给这一棵"树"放上糖果,当然注意重复的部分要 阅读全文
posted @ 2019-03-16 15:32 AD_shl 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 这是一道经典的差分题。 思路大概是这样的: 对于输入的序列a(假定长度为n) 我们求出他的差分序列sum 那么题目就转化成了用最少的步数使得差分序列sum的2~n项都为0 那么就有以下的几种决策: 显然,在sumi和sumj一正一负的前提下,我们应该尽可能多的使用第一种,这样才能使答案最优。 统计s 阅读全文
posted @ 2019-03-16 13:06 AD_shl 阅读(238) 评论(0) 推荐(0) 编辑
摘要: NOI2015的试题,一道树链剖分的模板题主要过程:树剖完成后对线段树进行区间修改,区间查询。代码较长,很考验代码能力 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 typedef long long ll; 5 i 阅读全文
posted @ 2019-03-16 11:00 AD_shl 阅读(214) 评论(0) 推荐(0) 编辑