首页 > TAG信息列表 > qtree

SP375 QTREE - Query on a tree

SP375 QTREE - Query on a tree 我是借这道题来说说如何从c++改到c的 1.我怕麻烦,所以把结构体拆了(忍痛割爱我封装的线段树) 2.max、swap函数进行了手写 max: ll llmax(ll x,ll y){return x>y?x:y;} swap: x^=y^=x^=y emm...这的确是一个神奇的swap,不用函数 至于为什么是对的

SPOJ QTREE

题意: 一个有边权树,操作是询问节点\(a到b\)所经过边的最大权和修改某边的边权 思路: 树链剖分,将边权下放到儿子的点权即可 #include<iostream> #include<cstdio> #include<cstring> #include<vector> #include<algorithm> #define ll long long #define FOR(i,l,r) for(int i

SP14932 LCA - Lowest Common Ancestor

#include<bits/stdc++.h>using namespace std;const int maxn=1e6+7;struct node1{ int nxt; int to;}tree[maxn*2];struct node2{ int nxt; int to; int LCA;}qtree[maxn*2];int head1[maxn],cnt1;void add1(int x,int y){ tree[++cnt1].nxt=head1[x

SP375 QTREE - Query on a tree (树剖)

题目 SP375 QTREE - Query on a tree 解析 也就是个蓝题,因为比较长 树剖裸题(基本上),单点修改,链上查询。 可以看到这个题然我们对边进行操作,我们的树剖是对节点进行操作的,所以我们考虑把边权转移到点权上。 发现我们节点的点权是连向它的边的边权,所以我们要修改或查询边权的话,我们修