树链剖分模板.docxVIP

  • 14
  • 0
  • 约3.05万字
  • 约 24页
  • 2016-11-29 发布于重庆
  • 举报
树链剖分模板

SPOJ 375给一颗树,每条边有一个权值。有两种操作:1、修改某条边的值;2、询问a、b两点路径上边权的最大值。Input:131 2 12 3 2QUERY 1 2CHANGE 1 3QUERY 1 2DONEOutput:13//树链剖分、边权#include cstdio#include cstring#include vector#include algorithmusing namespace std;#define Del(a,b) memset(a,b,sizeof(a))const int N = 10005;int dep[N],siz[N],fa[N],id[N],son[N],val[N],top[N]; //top 最近的重链父节点int num;vectorint v[N];struct tree{ int x,y,val; void read(){ scanf(%d%d%d,x,y,val); }};tree e[N];void dfs1(int u, int f, int d) { dep[u] = d; siz[u] = 1; son[u] = 0; fa[u] = f; for (int i = 0; i v[u].size(); i++) { int ff = v[u][i]; if (ff == f) continue; dfs1(ff,

文档评论(0)

1亿VIP精品文档

相关文档