题意:给一棵树,每次给两个节点间的所有节点发放第k种东西,问最后每个节点拿到的最多的东西是哪种。解法:解决树的路径上的修改查询问题一般用到的是树链剖分+线段树,以前不会写,后来学了一下树链剖分,感觉也不是很难,就是把整个数分成很多链,然后一条重链上的点在线段树中位置是连续的,这样使得更新和查询时更加...
分类:
其他好文 时间:
2014-09-30 21:30:10
阅读次数:
204
UVA 11354 - Bond
题目链接
题意:给定一个图,要求每次询问两点,求出这两点间路径最大危险系数最小
思路:先求最小生成树,在生成树上每次询问求LCT就可以了,利用树链剖分求解
代码:
#include
#include
#include
#include
using namespace std;
#define lson(x) ((x<<1)+...
分类:
其他好文 时间:
2014-09-30 20:16:49
阅读次数:
214
/*
树链刨分+离线操作
题意:给你一棵树,和询问x,y
从节点x--节点1的小于等于y的最大值.
解:先建一个空树,将树的边权值从小到大排序,将询问y按从小到大排序
对于每次询问y将小于等于y的边权值的边加入,在进行询问将结果储存最后输出即可
易错点:要考虑到节点1到节点1的情况需特判。
*/
#pragma comment(linker, "/STACK:102400000,1...
分类:
其他好文 时间:
2014-09-30 18:28:59
阅读次数:
243
入门题
#include
#include
#include
using namespace std;
const int maxn = 50010;
struct edge
{
int v, next;
}e[maxn*2];
int n, m, q;
int first[maxn], cnt;
int top[maxn], tid[maxn], rank[maxn], sz[ma...
分类:
其他好文 时间:
2014-09-29 19:36:51
阅读次数:
252
概要:就是用来维护区间信息,然后各种秀智商游戏。应用:优化dp、主席树等。技巧及注意:size值的活用:主席树就是这样来的。支持区间加减,例题和模板:主席树,【BZOJ】1146: [CTSC2008]网络管理Network(树链剖分+线段树套平衡树+二分 / dfs序+树状数组+主席树),【BZO...
分类:
其他好文 时间:
2014-09-29 01:31:36
阅读次数:
302
题意:
给定n个点的带点权树。
下面n行给出每个点点权表示每个点买卖鸡腿的价格
下面n-1行给出树边
下面Q个操作
Q行
u, v, val
从u走到v,过程中可以买一个鸡腿,然后到后面卖掉,输出max(0, 最大的收益)
然后给[u,v]路径上点点权+=val
思路:
树链剖分裸题
屌丝题解:点击打开链接
#pragma comment(linker, "/STA...
分类:
其他好文 时间:
2014-09-28 18:19:26
阅读次数:
288
Tree
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 700 Accepted Submission(s): 145
Problem Description
You are given a tree (...
分类:
其他好文 时间:
2014-09-28 18:12:06
阅读次数:
224
树链剖分水过,单点修改,树状数组即可。#include #include #include #include #include #define N 250100using namespace std;int n, m, nowplace = 0;int p[N] = {0}, next[N], .....
分类:
其他好文 时间:
2014-09-28 14:26:52
阅读次数:
171
题目大意:两个小人在树上玩Nim游戏,问有没有必胜策略。
思路:尼姆游戏:如果所有石子的异或值为0就是必败局面。异或有如下性质:x ^ y ^ z = x ^ (y ^ z),所以就可以进行树链剖分了。题目中还好心提醒有30%的点会使dfs爆栈。。第一次写不用dfs的树链剖分,扒的别人的代码,有些丑陋。
CODE:
#include
#include
#inclu...
分类:
其他好文 时间:
2014-09-28 10:35:41
阅读次数:
167
题意:一棵树上两种操作,操作1,改变u到v的每一点的值增加k,操作2,改变u到v每一条边值增加k。最后结束时问,每一点和每一条边的值。初始时,点和边的值都为0.分析:很显然要用树链剖分,将点和边分别划分成连续一段的编号,然后就是维护一段一段的值了,给它增加一个值,由于题目只需要输出最后结果,那么可以...
分类:
其他好文 时间:
2014-09-27 20:31:00
阅读次数:
342