Codeforces 1076E E. Vasya and a Tree

基于图像分割的LIDC-IDRI 数据集预处理之数据下载篇 近期接触到了一个关于图像分割实验项目,关于数据预处理部分在此予以记录,和大家分享。 阅读详情

这是一个静态问题
按DFS走,进入一个子树时把子树根上挂的修改激活,离开子树时撤销
这样所有的修改和查询都是对于深度的

QvQ:递归三参数栈爆炸了

#include<bits/stdc++.h>
using namespace std;
#define M 524288
#define N 300005
typedef long long ll;

int L,R,aim,n,m,tot,s[N],dep;
ll t[M<<1],ans,op[N];
vector<pair<int,int> > q[N];

struct edge{int v,n;}e[N<<1];
#define Push(u,v) push(u,v),push(v,u)
inline void push(int u,int v){e[++tot]=(edge){v,s[u]};s[u]=tot;}

void change(int k,int l,int r)
{
	if (L<=l && r<=R){t[k]+=aim;return;}
	int mid=l+r>>1;
	if (L<=mid) change(k<<1,l,mid);
	if (mid<R) change(k<<1|1,mid+1,r);
}

void find(int k,int l,int r)
{
	ans+=t[k];
	if (l==r) return;
	int mid=l+r>>1;
	if (aim<=mid) find(k<<1,l,mid);
	else find(k<<1|1,mid+1,r);
}

void dfs(int k,int f)
{
	dep++; 
	for (auto s:q[k])
	{
		L=dep;R=dep+s.first;
		aim=s.second;
		change(1,1,M);
	}
	aim=dep;ans=0;
	find(1,1,M);
	op[k]=ans;
	for (int i=s[k];i;i=e[i].n) if (e[i].v!=f) dfs(e[i].v,k);
	for (auto s:q[k])
	{
		L=dep;R=dep+s.first;
		aim=-s.second;
		change(1,1,M);
	}
	dep--;
}

int main()
{
	scanf("%d",&n);
	for (int i=1,u,v;i<n;i++) scanf("%d%d",&u,&v),Push(u,v);
	scanf("%d",&m);
	for (int v,d,x;m--;)
	{
		scanf("%d%d%d",&v,&d,&x);
		q[v].push_back(make_pair(d,x));
	}
	dfs(1,0);
	for (int i=1;i<=n;i++) printf("%I64d%c",op[i],i==n?'\n':' ');
}
Probability and Statistics - 4th edition 立即下载

相关推荐

麒麟V10服务器多硬盘安装与分区实战:告别自动分区,手动分配/boot、swap和/根目录

本文详细介绍了麒麟V10服务器在多硬盘环境下的手动分区策略,包括/boot、swap和/根目录的优化分配方案。通过SSD与HDD混合存储架构的合理规划,提升系统性能和运维效率,适用于企业级定制化系统部署需求。

weixin_26976635的博客 407

【Codeforces 1076E】Vasya and a Tree 树状数组 思维

链接:https://codeforces.ml/contest/1076/problem/E 题目大意: 给定一棵树,以1为根节点,接下来进行m次操作,每次操作x,y,z:使x的子树中距离x节点小于等于y的点权值+z 输出m次操作以后每个点的权值 题目思路: 首先考虑无修改操作,可能为离线。 思路就稍微往离线上靠一下 所以首先把对x节点的操作储存起来 考虑到该树的根确定,也就是说当操作x节点时,可被操作的点满足的要求即为(令dis代表该点在树中的深度): 1.dis[k] <= d

一只酷酷光儿的博客 632

嵌入式开发语言-C语言编程

C语言编程概述环境在Windows上构建C语言的环境安装在Mac上构建C语言的环境安装 概述 “C语言”被称为适合嵌入式系统开发的编程语言之一。 C语言在一般的编程中也是熟悉的开发语言,但实际上,如果试着使用C语言制作微型计算机的控制程序等,就必须使用与“普通的C程序”不同的使用方法。 作为一般的C语言的学习方法,使用“printf”“scanf”等标准函数的程序开发是固定的,但这些都是以UNIX和Windows等环境上的应用程序开发为前提的。 对此,没有显示器和键盘的嵌入式系统的微型计算机控制程序,该如何

编程老王 7978

CodeForces 1076E Vasya and a Tree(树上差分+树状数组)

原题地址:https://codeforces.com/contest/1076/problem/E 题意:给出一棵树,有mmm次操作,每次操作有一个v,d,x,v,d,x,v,d,x,表示将以vvv为根节点,距离vvv的长度小于等于ddd的所有节点权值加上xxx,最后求所有节点的权值。 思路:如果是对节点v的子树进行修改,那么问题可以用dfs序转化为序列上的问题,但是这题是对距离为d的进行修改,...

yiqzq的博客 564

大麦网抢票软件工具开发系列(一)

前言《大麦网》都知道吧,就是那个被网友声称“大麦网你卖啥了?”票务平台。近期有听到朋友说《大麦网》的票很难抢,基本上都是说:“哎哟喂,被挤爆啦,请稍后重试!”,也不知道《大麦网》...

架构文摘 1万+

从POI兴趣点获取到ArcGIS中热力图制作

1. POI获取及坐标点转换 POI获取我们要借助下面这个网站↓↓↓ 规划云http://guihuayun.com/poi/ 搜索POI兴趣点并复制兴趣点, 图 新建txt文本文档,粘贴兴趣点 图片 查看后得知,lng为横坐标,lat为纵坐标 文件,另存为csv格式文件,编码为utf—8 打开QGIS,因为我们pol点是从百度地图上获取的,为BD09坐标系,与WGS84有一定偏移【GCJ02:火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。 BD09:为.

qq_43173805的博客 5598

E. Vasya and a Tree(树上主席树or树上可持续化线段树)

E. Vasya and a Tree time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Vasya has a tree consisting ofnnvertices with root in verte...

ccsu_deer 707

FOC无刷电机磁编码器机械角度与电角度自动对齐校准及电机极对数自动获取的方法

本文提出磁编码器机械角度与电角度自动对齐校准方法及电机极对数自动获取方案。通过通直流电流使转子定向,读取机械角度并计算电角度偏移量,实现精确对齐;同时利用低速旋转时检测反电动势过零点次数,结合机械角度变化量自动计算极对数。核心算法包括转子定向、偏移量计算、极对数推导等步骤,并提供了基于STM32的C语言实现代码。该方法适用于工业伺服、机器人等高精度控制场景,需注意负载安全、参数调整和误差处理。两种自动化流程可有效解决电机安装调试中的角度对齐和参数识别问题。

qq_29653575的博客 2488

Vasya and a Tree CodeForces - 1076E(+dfs+树)

Vasya has a tree consisting ofnnvertices with root in vertex11. At first all vertices has00written on it. Letd(i,j)d(i,j)be the distance between verticesiiandjj, i.e. number of edges in the...

BigZong 255

深入解析CAN总线BusOff故障的检测与恢复机制

本文深入解析了CAN总线BusOff故障的检测与恢复机制。BusOff是CAN节点因发送错误过多而被强制离线的一种严重状态。文章详细阐述了其触发原理,即发送错误计数器(TEC)超过255,并重点介绍了通过软件实现的快慢恢复机制,以增强网络在异常情况下的稳定性和韧性。

weixin_29158047的博客 525

STM32cubemx配置驱动DHT11模块

本篇文章将带大家学习使用DHT11湿温度模块,使用这个模块可以获取当前的温度和湿度数据。DHT11可以用于智能家居,蔬菜大棚等项目当中适用范围广。DHT11 是一种数字式温湿度传感器,由杜邦公司推出。它可以测量环境中的温度和湿度,并将测量结果以数字形式传输给微控制器或其他电子设备,适用于通过数字信号读取环境温湿度的应用场景。DHT11 传感器使用单总线数据交换协议,可以通过一个 I/O 引脚进行控制和数据传输。

m0_49476241的博客 5912

CodeForces - 1076E(树状数组+dfs+差分)

题目 从1开始dfs,如果遍历到当前点,说明这个点不会再被更新。 然后用树状数组,下标为这个点深度。 每次更新完回到当前点要还原回去,因为一点的两个孩子深度一样,但他们影响的节点是不一样的。 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<iostream> #include<algorithm> #include<vector> #include<queue> using na

weixin_45714726的博客 220

《C/C++等级考试(1~8级)历届真题解析》专栏总目录

中国电子学会《全国青少年软件编程等级考试》C/C++编程(1~8级)历届真题解析。订阅后可阅读专栏内所有真题解析,真题持续更新中!

人生就是一个不断学习的过程 2万+

CodeForces 1076E Vasya and a Tree(DFS)

Vasya and a Tree time limit per test:2 seconds memory limit per test:256 megabytes Problem Description Vasya has a tree consisting of n vertices with root in vertex 1. At first all vertices has 0 writ...

sigh_的博客 191

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

codeforces 1076E Vasya and a Tree 树上差分

题意:给你一棵1为根节点的树,初始每个节点权值为0,有m次操作,每次操作 v d x,表示将以v为根的子树,深度不超过d的所有节点加上x。 思路:dfs的性质+差分思想,dfs记录以该节点为起点的所有操作影响的深度范围,在从该节点回溯时再把影响减去,因为dfs时只会在子树中遍历,所以用这种方法就把影响限制在了子树的规定深度中。 参考博客:https://www.cnblogs.com/pkgu...

常胜将军的博客 334

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Vasya and a Tree CodeForces - 1076E

http://codeforces.com/contest/1076/problem/E 这场竟然是acm赛制 本以为先做e能多捞几分 结果罚时爆炸还差点翻车。。 m次修改 v k x代表将v节点之下k层的节点全都加x 最后统一查询 即输出每个节点的值 因为修改过程无查询 考虑离线做法 因为是按层更新 一开始考虑维护bfs序 但k不是一个小常数 并且也无法对层数差分 只能换思路 很多数据结...

sunyutian1998的博客 556

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Codeforces 1076 E - Vasya and a Tree

E - Vasya and a Tree 思路: dfs动态维护关于深度树状数组 返回时将当前节点的所有操作删除就能保证每次访问这个节点时只进行过根节点到当前节点这条路径上的操作 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/stdc++....

weixin_34125592的博客 69

CodeForces - 1076E Vasya and a Tree 树剖?nono dfs+树状数组

题目链接:https://cn.vjudge.net/problem/CodeForces-1076E 题解:树状数组维护下深度,到达每个节点,对于每次更新容斥一下,对于直接查询即可 #include <bits/stdc++.h> using namespace std; typedef long long ll; #define lowbit(x) (x & (-x)...

还我笑颜 202

Vasya and a Tree CodeForces - 1076E(线段树+dfs)

I - Vasya and a Tree CodeForces - 1076E 其实参考完别人的思路,写完程序交上去,还是没理解啥意思。。昨晚再仔细想了想。终于弄明白了(有可能不对 题意是有一棵树n个点,初始时候每个点权值都为0,m次修改,对v的叶子节点且距离小于d的都加上x 也就是v以下d层包括v自身都加上x 问最后每个点的权值 现在一想 用线段树来维护就是很自然的事了 但是...

weixin_34355881的博客 113

Codeforces 1076E - Vasya and a Tree - 树状数组

Codeforces 1076E - Vasya and a Tree - 树状数组 题解链接 https://lucien.ink 题目链接 http://codeforces.com/contest/1076/problem/E 题意 给你一棵有根树,有 mmm 次操作,每次操作为 v d x,代表着把以 vvv 为根深度不超过 ddd 的所有点的权值都加上 xxx,问所有操作都进行完之后...

LucienShui 640

codeforces 1076E Vasya and a Tree 树上主席树

E. Vasya and a Tree 题意:给你一棵1为根节点的树,初始每个节点权值为0,有m次操作,每次操作 v d x,表示将以v为根的子树,深度不超过d的所有节点加上x。 思路:从深度为1的根节点开始遍历,到了深度为dep的v节点,若是该节点有操作 d x,那么以该节点为根的主席树就要在dep+d的点加上一个权值x,然后怎么计算该点的答案呢,该点的答案就是该点的主席树区间 [ dep,...

ccsu_cat 531

Codeforces 1076 E. Vasya and a Tree(dfs)

题目链接 题目大意: 给定一个数,总共有m个操作,每个操作包括 v d k。 表示以v为根,在v的子树中所有深度≤\le≤d的节点权值都+k,输出每个顶点的权值。 解题思路: 对树进行dfs可以记录节点深度,每到一个节点,就把以当前节点为根的操作都进行一遍,例如当前深度为dep,就将Add[dep…dep+d]都+k,然后当前节点的答案就为Add[dep],但是dfs回溯的时候要将这些操作撤销,就是将这些操作都变成-k重新操作一次就行了。对区间加减可以使用线段树或区间差分实现就行了。(代码中注释的是线段树操

qq_41818939的博客 158

Vasya and a Tree CodeForces - 1076E(树状数组+dfs)

Vasya has a tree consisting of nn vertices with root in vertex 11. At first all vertices has 00 written on it. Let d(i,j)d(i,j) be the distance between vertices ii and jj, i.e. number of edges in the ...

starlet_kiss的博客 355

Vasya and a Tree CodeForces - 1076E (线段树 + dfs)

题面 Vasya has a tree consisting of n vertices with root in vertex 1. At first all vertices has 0 written on it. Let d(i,j) be the distance between vertices i and j, i.e. number of edges in the sho...

weixin_30375427的博客 159

J - Vasya and a Tree CodeForces - 1076E树状数组+dfs

传送 题意: 有一棵树,1是根节点,给出三个数x,d,v,表示以x为节点的子树中,深度小于等于d的每个节点值+v; 这题的难点在于,如何控制深度d; 先说我没做出来的思路: 1 如果我们直接以深度建立树状数组,在改变以2为根节点的子树的时候,同样深度为2的2,3会同时更改,但是3的并不在2的子树上;我们还要判断是否在一个子树上,就十分的复杂。 2 如果是直接用dfs序,就像上面所说,深...

wa的一声就哭了 215

CodeForces1076E、Vasya and a Tree(线段树+离线)

E. Vasya and a Tree time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Vasya has a tree consisting of nn vertices with root in verte...

Amove 514
上一篇: Codeforces 1076D Educational Codeforces Round 54 (Rated for Div. 2) D. Edge Deletion
下一篇: Codeforces Round 520 div2
Pure_W
博客等级 码龄10年 19粉丝 158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值