LOJ dfs序1234

DFS 序 1

题目要求
uuu节点权值+x+x+x
② 询问uuu子树权值和

  • uuu节点权值+x+x+x :直接加
  • uuu子树权值和:dfs序+树状数组

LOJ提交代码 DFS 序 1

DFS 序 2

题目要求
uuu节点子树权值+x+x+x
② 询问uuu子树权值和

  • uuu节点子树权值+x+x+x:dfs序+区间修改
  • 询问uuu子树权值和:dfs序+区间求和

区修+区改可以用2个树状数组或者lazy线段树
LOJ提交代码 DFS 序 2

DFS 序 3,树上差分 1

题目要求
u⇝vu\leadsto vuv 路径+x+x+x
② 询问uuu节点权值
③ 询问uuu子树权值和

采用自底向上的差分O(nlog⁡n)O(n\log n)O(nlogn)

  • u⇝vu\leadsto vuv路径+x+x+xuuuvvv分别+x+x+x而LCA以及LCA的父亲节点分别−x-xx
  • uuu节点权值:由于采用自底向上差分,不难得出原uuu节点的权值→\to uuu节点子树权值和,采用dfs序+树状数组即可解决
  • uuu子树权值和:考虑uuu子树一个节点vvv,经过操作二求法得知对于差分后节点vvv的值再求u⇝vu\leadsto vuv的路径上的实际点权值时(子树),都会将vvv的贡献加上即差分树中vvv的值对子树uuu权值和的贡献即valv×(depv−depu+1)=valv×depv+(depu−1)×valvval_v×(dep_v-dep_u+1)=val_v×dep_v+(dep_u-1)×val_vvalv×(depvdepu+1)=valv×depv+(depu1)×valv于是有uuu子树权值和为∑v∈Treeuvalv×depv−(depu−1)×∑v∈Treeuvalv\sum_{v\in Tree_u}val_v×dep_v-(dep_u-1)×\sum_{v\in Tree_u}val_vvTreeuvalv×depv(depu1)×vTreeuvalv由此得知只需要在用一个树状数组维护valv×depvval_v×dep_vvalv×depv即可根据dfs序求出子树valv×depvval_v×dep_vvalv×depv和,不难得出uuu子树权值和问题也迎刃而解

LOJ提交代码 DFS 序 3

DFS 序 4

题目要求
uuu节点权值+x+x+x
uuu节点子树权值+x+x+x
③ 询问u⇝vu\leadsto vuv路径节点权值和

对于u⇝vu\leadsto vuv路径权值和可以拆分成4条路径:root⇝uroot\leadsto urooturoot⇝vroot \leadsto vrootvroot⇝root \leadstorootLCA,root⇝root \leadstorootLCA的父亲,于是只需要维护根节点到某个节点的权值和即可解决询问
于是我们让每个节点的权值为到根节点的权值和

  • uuu节点权值+x+x+x:此操作会导致uuu子树中所有节点到根节点的权值和+x+x+x,因此需要让uuu节点子树权值都+x+x+x
  • uuu节点子树权值+x+x+x:考虑uuu子树中一个节点vvv,不难得知u⇝vu\leadsto vuv路径上所有点都会让vvv节点权值+x+x+xvvv节点需要增加x×(depv−depu+1)=x×depv−x×(depu−1)x×(dep_v-dep_u+1)=x×dep_v-x×(dep_u-1)x×(depvdepu+1)=x×depvx×(depu1)不难发现−x×(depu−1)-x×(dep_u-1)x×(depu1)可以直接子树修改即可而x×depvx×dep_vx×depv说明每一个xxx对当前节点权值增加x×depvx×dep_vx×depv,只需要用一个树状数组记录一下每个点最终有多少xxx即可。

LOJ提交代码 DFS 序 4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319021.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET Core 必备安全措施

.NET Core大大简化了.NET应用程序的开发。它的自动配置和启动依赖大大减少了开始一个应用所需的代码和配置量,本文目的是介绍如何创建更安全的.NET Core应用程序。1.在生产中使用HTTPS传输层安全性(TLS)是HTTPS的官方名称,你可能听…

CF1370F2-The Hidden Pair(Hard Version)【交互题,二分】

正题 题目链接:https://www.luogu.com.cn/problem/CF1370F2 题目大意 TTT组数据,给出nnn个点的一棵树,有两个隐藏的关键点。你每次可以询问一个点集,交互库会回答这个点集中的一个点满足它到两个关键点的距离和最小,和这个距离。…

牛客题霸题目及题解汇总

牛客题霸 单链表的选择排序 C题解/答案牛客题霸 最少素数拆分 C题解/答案牛客题霸 两数之和 C题解/答案牛客题霸 反转链表 C题解/答案牛客题霸 二分查找 C题解/答案牛客题霸 判断链表中是否有环 C题解/答案牛客题霸 转圈打印矩阵 C题解/答案牛客题霸 [斐波那契数列] C题解/答牛…

HDU5126 stars(4维偏序->cdq套cdq+树状数组)

stars 题目大意: 在一个三维空间当中,每次进行一个操作,添加一个点或者统计空间中的某一个长方体范围内的所有点 三维空间中我们用两个点即可确定一个长方体。 首先效仿平面二维数点的方法,根据容斥原理可以把询问拆分成8个以原点…

[翻译] C# 8.0 新特性

原文: Building C# 8.0[译注:原文主标题如此,但内容大部分为新特性介绍,所以意译标题为 "C# 8.0 新特性"]C# 的下一个主要版本是 8.0。我们已经为它工作了很长一段时间,即使我们构建并发布了次要版本 C# 7.1, 7.2 和 7.3&#xff0…

[蓝桥杯][2018年第九届真题]搭积木

[[蓝桥杯][2018年第九届真题]搭积木](https://www.dotcpp.com/oj/problem2292.html)题目: 小明对搭积木非常感兴趣。他的积木都是同样大小的正立方体。 在搭积木时,小明选取 m 块积木作为地基,将他们在桌子上一字排开,中间不留空…

NOI.AC#2007-light【根号分治】

正题 题目链接:http://noi.ac/problem/2007 题目大意 nnn个格子排成一排,每个格子有一个0/10/10/1和一个颜色。开始每个格子都是000,qqq次操作取反一个颜色的所有格子的0/10/10/1,然后询问111的格子构成的连通块数量。 1≤n,q≤1051\leq n,q…

【招聘(广州)】 招聘.NET程序员

招聘:.NET程序员工作地点:广州天河区CBD(地铁3号线珠江新城站)职位描述:网站平台、移动页面、APP、微信小程序、接口等开发;与UI/UX,设计师、产品经理偕同工作一起排查、定位、优化产品性能。任…

【模板】一维树状数组

ACM模板 目录聊聊前缀和什么是树状数组?树状数组相关操作局限性差分在树状数组中的应用区间更新、单点查询区间更新、区间查询树状数组应用聊聊前缀和 比如数组 int a[7]{1,2,3,4,5,6,7}如果需询问数组从第l个数到第r个数的和暴力做法时间复杂度为O(n)O(n)O(n) 不过我们可以…

牛客题霸 单链表的选择排序 C++题解/答案

牛客题霸 单链表的选择排序 C题解/答案 题目描述 给定一个无序单链表,实现单链表的选择排序(按升序排序)。 题解: 不可能手写排序,这辈子不可能手写排序。。 基础的链表操作,将链表内的数据存到vector内,然后用sor…

牛客练习赛71E-神奇的迷宫【点分治,NTT】

正题 题目链接:https://ac.nowcoder.com/acm/contest/7745/E 题目大意 给出nnn个点的一棵树,每个点有一个选择权重aia_iai​(有ai∑i1nai\frac{a_i}{\sum_{i1}^na_i}∑i1n​ai​ai​​的概率被选择)。 然后有一个序列www。随机选择两次点&…

使用C#把Tensorflow训练的.pb文件用在生产环境

训练了很久的Tf模型,终于要到生产环境中去考验一番了。今天花费了一些时间去研究tf的模型如何在生产环境中去使用。大概整理了这些方法。继续使用分步骤保存了的ckpt文件这个貌似脱离不了tensorflow框架,而且生成的ckpt文件比较大,发布到生产…

OpenJudge1043 树上游戏(换根dp+细节处理)

树上游戏 给定一棵 nnn 个节点的树,点从 111 到 nnn 编号,点有点权,边有边权, Alice\text{Alice}Alice 和 Bob\text{Bob}Bob 两人在做游戏。 棋子以某一个点 sss 为起点,玩家移动该棋子,有以下两条规则&a…

牛客题霸 转圈打印矩阵 C++题解/答案

牛客题霸 转圈打印矩阵 C题解/答案 题目描述 给定一个整型矩阵matrix,请按照顺时针转圈的方式打印它。 示例1 输入 复制 [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]] 返回值 复制 [1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10] 题解: 题意很明确…

【招聘(上海)】东方财富证券招聘.net开发

东方财富证券:东方财富网(深创:300059)旗牌照齐全证券公司,极具互联网基因的券商。.Net服务端开发工程师/.Net前端开发工程师[职位介绍]服务端:开户、交易及资讯系统的后端接口服务(Asp.Net WebApi)开发;服务端&#x…

2020牛客NOIP赛前集训营-提高组(第三场)C-牛半仙的妹子Tree【虚树,最短路】

正题 题目链接:https://ac.nowcoder.com/acm/contest/7609/C 题目大意 给出nnn个点的一棵树,mmm个时刻各有一个操作 标记一个点,每个点被标记后的每一个时刻会标记掉周围的点。删去所有点的标记询问一个点是否有标记 解题思路 考虑没有二操作怎么搞&…

codeforces773 D. Perishable Roads(思维+最短路)

D. Perishable Roads 题意简述: 一个 nnn 个点的完全图 以 iii 为根节点时 询问 能构造的树的 ∑d(x)\sum d(x)∑d(x) 最小是多少。 d(x)d(x)d(x): xxx 到根节点边权值最小值 MOONPIE题解 首先有一个显而易见的错误贪心: 不妨假设以root\t…

牛客题霸 两数之和C++题解/答案

牛客题霸 两数之和 C题解/答案 题目描述 给出一个整数数组,请在数组中找出两个加起来等于目标值的数, 你给出的函数twoSum 需要返回这两个数字的下标(index1,index2),需要满足 index1 小于index2.。注意&…

P3244-[HNOI2015]落忆枫音【dp】

正题 题目链接:https://www.luogu.com.cn/problem/P3244 题目大意 给出一个DAG\text{DAG}DAG,保证111可以到达所有点。然后再加入一条边(之后不一定是DAG\text{DAG}DAG)。 求有多少棵以111为根的外向生成树。 1≤n≤105,1≤m≤21051\leq n…

EF Core 实现多租户

SAAS 和多租户SaaS(软件及服务)区别于其他应用程序的主要特征就是能够使客户在使用应用程序时按照使用量付费。他们不需要为软件购买许可,也不需要安装、托管和管理它。这方面的操作全部由提供 SaaS 软件的组织负责。多租户是实现 SaaS 的关键因素, 它可以让多个企业…