ZJOI2008 樹的統計 LCT

2022-06-06 18:21:09 字數 1034 閱讀 8075

一棵樹上有 \(n\) 個節點,編號分別為 \(1\) 到 \(n\),每個節點都有乙個權值 \(w\)。我們將以下面的形式來要求你對這棵樹完成一些操作: i.change u t: 把結點 \(u\) 的權值改為 \(t\) ii.qmax u v: 詢問從點 \(u\) 到點 \(v\) 的路徑上的節點的最大權值 iii.qsum u v: 詢問從點 \(u\) 到點 \(v\) 的路徑上的節點的權值和。

lct 維護鏈上資訊即可

#include using namespace std;

#define int long long

const int n = 1000000;

int n,m,val[n];

namespace lct

inline void pushdown(int x)

}inline bool isroot(int x)

inline void rotate(int p)

inline void splay(int x)

void access(int x)

void makeroot(int x)

int find(int x)

void split(int x,int y)

void cut(int x,int y)

void link(int x,int y)

int query(int x,int y)

int querym(int x,int y)

void modify(int p,int v)

}signed main()

for(int i=1;i>u>>v;

lct::link(u,v);

}for(int i=1;i<=n;i++)

cin>>m;

for(int i=1;i<=m;i++)

if(str=="qsum")

if(str=="change")

}}

ZJOI 2008 樹的統計

一棵樹上有n個節點,編號分別為1到n,每個節點都有乙個權值w。我們將以下面的形式來要求你對這棵樹完成一些操作 i.change u t 把結點u的權值改為t ii.qmax u v 詢問從點u到點v的路徑上的節點的最大權值 iii.qsum u v 詢問從點u到點v的路徑上的節點的權值和 注意 從點...

ZJOI2008 樹的統計

zjoi2008 樹的統計 題目描述 一棵樹上有n個節點,編號分別為1到n,每個節點都有乙個權值w。我們將以下面的形式來要求你對這棵樹完成一些操作 i.change u t 把結點u的權值改為t ii.qmax u v 詢問從點u到點v的路徑上的節點的最大權值 iii.qsum u v 詢問從點u到...

ZJOI2008 樹的統計

一棵樹上有n個節點,編號分別為1到n,每個節點都有乙個權值w。我們將以下面的形式來要求你對這棵樹完成一些操作 i.change u t 把結點u的權值改為t ii.qmax u v 詢問從點u到點v的路徑上的節點的最大權值 iii.qsum u v 詢問從點u到點v的路徑上的節點的權值和 注意 從點...