树上操作
没有ID的ID
这个作者很懒,什么都没留下…
展开
-
P1351 联合权值
传送门(洛谷)一道树上操作题分两种情况操作,设当前节点为uuu,儿子为vvv,父亲为fafafavvv与fafafa可以组成一对联合权值,也就是一条链的情况vvv与uuu的其他儿子可以组成一对联合权值用一个tottottot数组存储uuu除去vvv的其他儿子的权值,再用乘法分配律乘起来就行,即ans2=tot∗w[v]ans2=tot*w[v]ans2=tot∗w[v]。Code...原创 2019-10-24 17:40:14 · 132 阅读 · 0 评论 -
Balancing Act
题目 Balancing Act找树的重心树重心的性质:一颗树一定有一个重心。当且仅当图的节点数n为偶数且有一条边连接两个大小均为n/2n/2n/2的子树时,树有两个重心,即是这条边的两个端点。每个子树大小都不大于n/2n/2n/2重心到所有点的距离和最小维护两个数组:size,fsize,fsize,f,一个是存储节点个数,一个维护父亲节点如果当前这个节点的节点数大于2n\f...原创 2019-10-24 11:22:04 · 210 阅读 · 0 评论 -
NOIP 模拟赛 10.21
传送门(MZOJ)T1(日程表):模拟题,直接每次模拟删除和加入就好。注意两个点:1.答案开long longlong\;longlonglong2.visvisvis数组要5e75e75e7Code#include<bits/stdc++.h>#define ll long long#define mod 1000000007#define rep(i,a,b)...原创 2019-10-21 22:05:46 · 135 阅读 · 0 评论 -
NOIP模拟赛 遗失的二叉树
MZOJ类似于区间动归中序遍历:先遍历左儿子,再遍历根节点,最后遍历右儿子盗用百科一张图中序遍历的结果:D−B−E−A−C−FD-B-E-A-C-FD−B−E−A−C−F本题思路:如能够构成一棵中序遍历的树,则在序列中一定存在一个iii的前面数是iii的左儿子,iii后面的数构成iii的右儿子举例:在上述D−B−E−A−C−FD-B-E-A-C-FD−B−E−A−C−F中,若AA...原创 2019-09-15 21:13:05 · 93 阅读 · 0 评论 -
#10157. 「一本通 5.2 例 5」皇宫看守
传送门(LOJ)树形动规f[u][0]f[u][0]f[u][0]表示iii的父亲节点放了一个守卫,以iii为根的子树最小需要的代价f[u][1]f[u][1]f[u][1]表示iii的子节点放一个守卫,以…(同上)f[u][2]f[u][2]f[u][2]表示iii自身放一个守卫,以…(同上)本题与战略游戏最大的区别,战略游戏是求树的最大独立集最大独立集,选取每一个节点的代价是一样的...原创 2019-09-05 22:03:31 · 230 阅读 · 0 评论 -
P3178 [HAOI2015]树上操作
传送门(洛谷)树链剖分模板题单点修改:update(1,n,1,id[x],id[x],delta)update(1,n,1,id[x],id[x],delta)update(1,n,1,id[x],id[x],delta)区间修改:update(1,n,1,id[x],id[y],delta)update(1,n,1,id[x],id[y],delta)update(1,n,1,id[x]...原创 2019-09-05 09:27:39 · 100 阅读 · 4 评论 -
P3833 [SHOI2012]魔法树
传送门(洛谷)树链剖分模板题,线段树的区间修改和区间查询,弱智爆了,我居然打了两个小时!!注意开long    longlong\;\;longlonglongCode#include<bits/stdc++.h>#define ll long long#define rep(i,a,b) for(register l...原创 2019-09-03 20:25:33 · 93 阅读 · 0 评论 -
P3398 仓鼠找sugar
传送门(洛谷)树链剖分(LCA)题目分析,如果两个人会在路上相遇,则一个点的LCA一定在另一条链上,也就是      \;\;\;S=lca(a,b)  P=lca(c,d)    如果dep[S]>dep[P],...原创 2019-09-03 17:08:45 · 119 阅读 · 0 评论 -
noip2013货车运输
传送门(洛谷)树上倍增+最大生成树跑一边KrusalKrusalKrusal求得最大生成树。树上倍增的时候顺带维护出g[u][i],g[u][i]表示u向上跳2i步的路径中的最小值g[u][i],g[u][i]表示u向上跳2^i步的路径中的最小值g[u][i],g[u][i]表示u向上跳2i步的路径中的最小值接下来常规操作rep(i,0,19) { f[u][i+1]=f[f[u][...原创 2019-09-02 17:19:20 · 100 阅读 · 0 评论 -
#10131. 「一本通 4.4 例 2」暗的连锁
传送门树上差分与树上倍增注意是边差分,所以压边权入点权边差分:          w[x]++,w[y]++,w[lca(w,y)]−=2:\;\;\;\;\;w[x]++,w[y]++,w[lca(w,y)]-=2:w[x]++,w[y]++,w[lc...原创 2019-08-30 09:20:03 · 146 阅读 · 0 评论 -
P2279 [HNOI2003]消防局的设立
传送门(洛谷)根据题意设计状态f[i][0]从i向上覆盖两个节点f[i][0]从i向上覆盖两个节点f[i][0]从i向上覆盖两个节点f[i][1]从i向上覆盖一个节点f[i][1]从i向上覆盖一个节点f[i][1]从i向上覆盖一个节点f[i][2]恰好覆盖到if[i][2]恰好覆盖到if[i][2]恰好覆盖到if[i][3]表示可以覆盖到从节点i向上−1层的最小消防站个数f[i][3]表...原创 2019-08-23 11:55:20 · 87 阅读 · 0 评论 -
P5002 专心OI - 找祖先
传送门(洛谷)这道题就是一个树上乘法原理当有一个点是询问点p时:sum[p]+=2∗size[p]−1,(p,p)是一种情况sum[p]+=2*size[p]-1,(p,p)是一种情况sum[p]+=2∗size[p]−1,(p,p)是一种情况当两个点都是询问点p的子树点的时候设x有k棵子树根据乘法原理,p有size[p]个点,则sum[p]+=(size[p]−1)∗(size[p...原创 2019-07-31 15:58:06 · 125 阅读 · 0 评论 -
P1364 医院设置
传送门(洛谷)树上操作:找树的重心树的重心的性质:1、树上所有的点到树的重心的距离之和是最短的,如果有多个重心,那么总距离相等。2、插入或删除一个点,树的重心的位置最多移动一个单位。3、若添加一条边连接2棵树,那么新树的重心一定在原来两棵树的重心的路径上。如何找树的重心:定义几个数组:f[u]f[u]f[u]表示以u为根的总距离,size[u]size[u]size[u]表示以u为...原创 2019-07-19 20:58:35 · 233 阅读 · 0 评论 -
主席树【模版】
主席树模版(传送门)POJ洛谷也有题目:洛谷链接题目描述:建议在写主席树时,先要将权值线段数弄明白。主席树就是一个具有历史意义的 我理解为有多棵线段数 一颗持久化的线段数,每次可持久化指的是它保存了这棵树的所有历史版本,最简单的办法是:如果你输入了n个数,那么每输入一个数字a[i],就构造一棵保存了从a[1]到a[i]的权值线段树。之所以这么做,是因为我们可以把第j棵树和第(i-1)...原创 2019-02-13 19:49:52 · 143 阅读 · 0 评论