树链剖分
Revincent
身体和灵魂总要有一个在路上。。。
展开
-
POJ 3237 Tree(树链剖分 + 单点更新 + 区间更新 + 区间查询)
题目链接:POJ-3237 Tree题意及思路:这道题就是在SPOJ-QTREE这道题目上加了区间更新关键就是权值取反部分怎么处理,取反后最大值将会是原来的最小值,所以既要存最大值,又要存最小值。取反后最大值为原来的最小值取反,最小值为原来的最大值取反。在这里我是用add这个数组当作懒标记数组,当一个区间取两次反时还是原来的最大值和最小值,因此要取add[rt]数组进行%2操作,当ad原创 2017-04-06 18:31:17 · 362 阅读 · 0 评论 -
HDU 3966(树链剖分 + 区间更新 + 点查询)
题目链接:HDU 3966 Aragorn's Story题目大意:一颗N个结点的树,给你P次操作操作 I :结点C1-->C2之间的所有结点权值加K;操作D:结点C1->C2之间的所有结点权值减K;操作Q:询问结点C的值。思路:这一眼看上去就知道是一道裸的树链剖分(点操作),就不多说了直接上代码。没学过树链剖分的建议先入门再来看代码。#include#inc原创 2017-04-06 18:18:38 · 358 阅读 · 0 评论 -
SPOJ - QTREE(树链剖分 + 单点更新 + 区间查询)
题目链接:SPOJ - QTREE题意:一棵树,N个结点,任意次操作。操作Change :a,b 将第a条边的权值改为b;操作Query:a,b 查询结点a->b路径上的最大边权。这是一道很裸的关于边操作的树链剖分题目,不多说了,直接上代码。#include#include#include#define N 10005#define inf 0x3f原创 2017-04-06 18:24:54 · 570 阅读 · 0 评论