POJ 2763 Housewife Wind LCA转RMQ+时间戳+线段树成段更新

2020-12-13 04:42

阅读:626

标签:http   for   io   html   时间   re   

题目来源:POJ 2763 Housewife Wind

题意:给你一棵树 2种操作0 x 求当前点到x的最短路 然后当前的位置为x; 1 i x 将第i条边的权值置为x

思路:树上两点u, v距离为d[u]+d[v]-2*d[LCA(u,v)] 现在d数组是变化的 对应每一条边的变化 他修改的是一个区间 用时间戳处理每个点管辖的区域 然后用线段树修改 线段树的叶子节点村的是根到每一个点的距离 求最近公共祖先没差别 只是堕落用线段树维护d数组

各种错误 4个小时 伤不起

#include 
#include 
#include 
using namespace std;
const int maxn = 200010;
struct edge
{
	int u, v, w, next;
}edges[maxn*2], e[maxn];

int E[maxn*2], H[maxn*2], I[maxn*2], L[maxn], R[maxn];
int dp[maxn*2][40];
int cnt, clock, dfn;
int first[maxn];
int a[maxn r)
		swap(l, r);
	int len = r-l+1, k = 0;
	while((1>1));
		a[rt>1);
		add[rt> 1;
	build(l, m, rt> 1;
	if(y  m)
		update(x, y, m+1, r, rt> 1;
	int ans = 0;
	if(x 


POJ 2763 Housewife Wind LCA转RMQ+时间戳+线段树成段更新,搜素材,soscw.com

POJ 2763 Housewife Wind LCA转RMQ+时间戳+线段树成段更新

标签:http   for   io   html   时间   re   

原文地址:http://blog.csdn.net/u011686226/article/details/37834281


评论


亲,登录后才可以留言!