题解:裸的,没什么好说的。
树链剖分不会的先理解一下重链轻链,然后直接扒我代码理解就行了。
贴代码:
#include
#include
#include
#include
#define N 30100
#define inf 0x3f3f3f3f
using namespace std;
struct KSD
{
int u,v,next;
}e[N<<1];
int head...
分类:
其他好文 时间:
2014-11-24 22:42:11
阅读次数:
257
题解:
线段树节点维护区间最左边的颜色,最右边颜色,总段,然后查询时加入所有链的段数,然后根据颜色判断哪俩链多算了一段。
大水题。
本来以为20min思路清晰地打完一发180行代码很屌。
……
俩小错误。(没有任何可以借鉴的价值)
一个是EDIT(note
一个是有一个地方忘了pushdown了。
写了好久,调了好久,拍了好久,WA了好久。什么 状态啊。
给代码、数据生成...
分类:
其他好文 时间:
2014-11-24 17:13:55
阅读次数:
159
TreeDescriptionYou are given a tree withNnodes. The tree’s nodes are numbered 1 throughNand its edges are numbered 1 throughN? 1. Each edge is associa...
分类:
其他好文 时间:
2014-11-24 14:56:46
阅读次数:
152
题意:
change,把第i条边权值改成v
negate,把a到b路径上所有权值取相反数(*(-1))
query,询问a到b路径上所有权值的最大值
树链剖分。
以前一直不会,但是我恶补LCT了,所以先学一下。
对于现在的水平来说,树剖太水了,自己翻资料吧,我只提供一个还算不错的代码。
扒代码的时候可以用我的这个。
附rand和pai。
代码:
#inc...
分类:
其他好文 时间:
2014-11-24 11:56:21
阅读次数:
223
题目大意:给出一棵树,一开始每两个点之间都是由土路连接的,但是会有一些土路逐渐变成公路,问每次从点1开始到点k有多少土路。
思路:POI不怎么难的题,实际上每个点到1的土路的数量就是这个点的深度,在土路变成公路的时候,这个点以及子树的所有节点的深度都要-1,子树修改就很基本了,可以用DFS序+fenwick,当然要是不嫌麻烦也可以树链剖分,但是常数会比较卡。。
CODE:
...
分类:
编程语言 时间:
2014-11-23 14:33:43
阅读次数:
197
题意:n个点构成的无根树,m次操作, 对于操作 x y z, 表示 x 到 y 路径上的 每个点 加一个 z 数字,可重复加。最后输出每个点 加的次数最多的那个数字,如果没有输出0.赤裸裸的树链剖分,可是剖分之后 怎么用线段树维护每个点加的数字的次数呢。这里用到的思想类似于2014年上海网络赛的一道...
分类:
其他好文 时间:
2014-11-20 01:23:35
阅读次数:
263
http://acm.fzu.edu.cn/problem.php?pid=2176Problem 2176 easy problemAccept: 9Submit: 32Time Limit: 2000 mSecMemory Limit : 32768 KBProblem Description给...
分类:
其他好文 时间:
2014-11-18 23:06:23
阅读次数:
269
输入输出挂,扩栈挂,模板树链剖分。#include#include#include#include#include#include#includeusing namespace std;const int maxn = 111111;struct Node{ int next; int t...
分类:
其他好文 时间:
2014-11-15 16:56:42
阅读次数:
316
树链剖分离线处理所有的增加操作。考虑如果在线性结构上面处理这样的问题,只要把增加区域的起始点+w,结束点的后面一个点-w,最终输出答案的时候只要扫描一遍就好了,现在通过树链剖分把树转化为类似的线性结构,用同样的方法处理即可。#include #include #include #include #i...
分类:
其他好文 时间:
2014-11-13 22:07:01
阅读次数:
213