题目地址:POJ 3237
这题用了一下午。。本来一直认为max和min两个数组是不用改的,只需要改lazy数组,然后在查询的时候利用lazy标记来返回max或-min,后来发现错的很严重。。
这题要在pushdown中修改max和min数组,从而实现最大值取反。
代码如下:#include
#include ...
分类:
其他好文 时间:
2015-05-04 22:13:18
阅读次数:
119
树上带修改K大,太可怕。。写了树链剖分+线段树套平衡树+二分和dfs序+主席树两种,每种都是写+调试花了将近5个小时!!我实在是太弱了。。
1. 树链剖分+线段树套平衡树+二分
最显然的做法了,没啥好多说的,不过写起来真是麻烦(我太弱),
一不小心就会把线段树和平衡树的节点的域弄混,犯了超级多傻逼错误。。写这题的时候还把自己树链剖分的风格改了一下,以前的实在是太麻烦了。。查询的时候二分答...
分类:
其他好文 时间:
2015-05-04 22:10:16
阅读次数:
124
其实第三题还没看啦~~前两题就总结下吧T1:[TJOI2015]旅游描述:(BZ没题面只能口述了。。)一个人在一棵树上走,每次从a->b会进行一次贸易(也就是在这条路径上买入物品然后在后面卖出)然后每次经过一个点该点的物品价格会上涨v,求每次贸易的最大获利很裸的一道树链剖分,就是题目描述太不明白了。...
分类:
其他好文 时间:
2015-05-04 21:57:38
阅读次数:
213
2243: [SDOI2011]染色Time Limit: 20 SecMemory Limit: 256 MB题目连接http://www.lydsy.com/JudgeOnline/problem.php?id=2243Description给定一棵有n个节点的无根树和m个操作,操作有2类:1、...
分类:
其他好文 时间:
2015-05-04 01:05:13
阅读次数:
225
题目地址:POJ 2763
还是树链剖分模板题。。。不多说。。
代码如下:#include
#include
#include
#include
#include
#include
#include
#include
#include <stdio....
题目地址:HDU 3966
树链剖分模板题。不多说、、
代码如下:#include
#include
#include
#include
#include
#include
#include
#include
#include
u...
分类:
其他好文 时间:
2015-05-01 18:46:16
阅读次数:
179
题目地址:SPOJ 375
树链剖分第一发!
果然是个貌似很高级的数据结构,其实就是把树的边从树形结构转化成了线性结构,从而可以用线段树或树状数组之类的数据结构进行快速维护。从而将时间缩到n*log(2*n).
这题用的线段树维护的。
代码如下:#include
#include
#include
#i...
分类:
其他好文 时间:
2015-04-30 01:03:53
阅读次数:
162
容易想到树链剖分来维护一条链上维护儿子中是1的个数为1的点的最长值和儿子是1的个数为2的点的最长值于是每次修改的时候就二分查询会更新到哪里,再直接链修改就好了单次查询复杂度$O(logn^2)$,单次修改复杂度为$O(logn)$注意如果动态开点太多会导致MLE,最后解决办法是在每个线段树节点上增加...
分类:
其他好文 时间:
2015-04-29 00:26:45
阅读次数:
147
Problem
一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权值和 注意:从点u到点v的路径上的节点包括u和v本身...
分类:
其他好文 时间:
2015-04-21 22:52:02
阅读次数:
175
裸题嘛。。
先考虑一条线段上如何查询颜色段数,只要对每个线段树节点多维护一个左颜色和右颜色,然后合并的时候sum[x]=sum[lc]+sum[rc]-(左儿子的右颜色==右儿子的左颜色)。。实在太久没写树剖结果码+调试花了两节多晚自习,,各种傻逼错误,什么反向边忘加,标记忘记下传。。。还有就是更新答案的时候,关键的一点是要保证当前的两点(也就是a,b)是没有被更新到的,否则很难搞。。
...
分类:
其他好文 时间:
2015-04-20 09:36:39
阅读次数:
196