【zzulioj 1916 DFS序 + 树状数组】
发布日期:2021-11-04 12:58:41 浏览次数:6 分类:技术文章

本文共 844 字,大约阅读时间需要 2 分钟。

Description

给一颗树,有n个结点,编号为1到n,1为根节点,有两种操作,1 x y把x结点权值加y,2 x查询x到根节点所有结点的权值和.

每个结点权值初始化为0。

Input

第一行输入一个整数t,代表有t组测试数据。

每组数据第一行为两个整数n,m代表结点个数和操作次数。
接下来n-1行,每行两个整数a,b,表示a结点和b结点有一条边。
接下来m行每行一个操作格式如上。
0<=n<=50000 ,0<=m<=50000,0<=y<=50000

Output

对于每组查询输出一个整数表示结果

Sample Input

1

5 5
1 2
1 3
3 4
3 5
2 5
1 1 2
1 3 1
2 4
2 1
Sample Output

0

3
2

第一次用到 DFS序 ,又学到了新知识,好开森呀~~~

#include 
#include
#include
#include
using namespace std;const int KL=50011;vector
v[KL];long long pa[KL];int vis[KL],in[KL],out[KL];int num;void DFS(int x){ int i; in[x]=++num;//进节点时间 for( i=0;i
0){ ans+=pa[x]; x-=lowbit(x); } return ans;}int main(){ int T,N,M,i,a,b,k; scanf("%d",&T); while(T--) { scanf("%d%d",&N,&M); for(i=0;i<=N;i++){ v[i].clear(); vis[i]=0; } memset(pa,0,sizeof(pa)); for(i=0;i

转载地址:https://blog.csdn.net/WYK1823376647/article/details/52239645 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【zzulioj 1922】
下一篇:【zzulioj 1919 二分】

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月01日 14时44分47秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章