HYSBZ 2243 染色
题目链接
树链剖分,关键在于线段树的维护,对于每个结点要记录下最左边和最右边的颜色,合并的时候,如果颜色相同那么颜色段要减1
代码:
#include
#include
#include
#include
using namespace std;
const int N = 100005;
int dep[N], fa[N], son...
分类:
其他好文 时间:
2014-10-02 21:02:53
阅读次数:
128
题意: 给一棵树,树的每条边有一种颜色,黑色或白色,一开始所有边均为黑色,有两个操作: 操作1:将第i条边变成白色或将第i条边变成黑色。 操作2 :询问u,v两点之间仅经过黑色变的最短距离。树链剖分+树状数组学习树链剖分:/* 树链剖分: 划分轻重链,效果是将一颗树变成...
分类:
其他好文 时间:
2014-10-02 20:55:43
阅读次数:
330
题意:给一棵树,两种操作: ADD1: 给u-v路径上所有点加上值k, ADD2:给u-v路径上所有边加上k,初始值都为0,问最后每个点和每条边的值,输出。解法:显然是树链剖分,剖出来如果直接用线段树来区间更新的话会TLE,所以要换一种姿势,有一种树链剖分的经典姿势就是看做树状数组一样,每次加值的时...
分类:
其他好文 时间:
2014-10-02 12:50:42
阅读次数:
165
树链剖分+树状数组
Aragorn's Story
Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2934 Accepted Submission(s): 806
Problem Descriptio...
分类:
其他好文 时间:
2014-10-01 23:30:41
阅读次数:
300
题目大意:
给出一棵树,每个点有商店,每个商店都有一个价格,Yaoge每次从x走到y都可以在一个倒卖商品,从中得取利益,当然,买一顶要在卖之前。但是没次走过一条路,这条路上的所有商品都会增加一个v。
输出每次的最大利益。
思路分析:
很容易想到树链剖分,可是关键在于如何维护这样一个变量,使得每次都要让买的再卖的前面。
维护变量 ltr 和 rtl ,表示从左去右和从右去左。
剖...
分类:
其他好文 时间:
2014-10-01 18:01:37
阅读次数:
268
题意:给一棵树,每次更新某条边或者查询u->v路径上的边权最大值。解法:做过上一题,这题就没太大问题了,以终点的标号作为边的标号,因为dfs只能给点分配位置,而一棵树每条树边的终点只有一个。询问的时候,在从u找到v的过程中顺便查询到此为止的最大值即可。代码:#include #include #in...
分类:
其他好文 时间:
2014-10-01 12:00:11
阅读次数:
254
POJ 3237 Tree
题目链接
就多一个取负操作,所以线段树结点就把最大和最小值存下来,每次取负的时候,最大和最小值取负后,交换即可
代码:
#include
#include
#include
#include
using namespace std;
const int N = 10005;
const int INF = 0x3f3f3f3f;
int...
分类:
其他好文 时间:
2014-10-01 11:29:31
阅读次数:
258
HYSBZ 1036 树的统计Count
题目链接
就树链剖分,线段树维护sum和maxx即可
代码:
#include
#include
#include
#include
using namespace std;
const int N = 30005;
int dep[N], fa[N], son[N], sz[N], top[N], id[N], idx...
分类:
其他好文 时间:
2014-10-01 03:21:30
阅读次数:
293
Light 1348 - Aladdin and the Return Journey
题目链接
树链剖分基础题,注意一个坑点,就是下标按0开始的话按我的写法是会错的,因为son初值赋成0了,要么改一下son初值,要么把下标都+1
代码:
#include
#include
#include
#include
using namespace std;
const ...
分类:
其他好文 时间:
2014-10-01 02:34:00
阅读次数:
212
POJ 2763 Housewife Wind
题目链接
就树链剖分。。不过这题坑ector啊!, vector居然超时
代码:
#include
#include
#include
#include
using namespace std;
#define lson(x) ((x<<1)+1)
#define rson(x) ((x<<1)+2)
typede...