[Codeforces894D]Ralph And His Tour in Binary Country

基于Java17、SpringBoot、vue3、antdv-next、uniapp等主流技术构建的全场景极速开发平台 MDP内置3个web端、1个移动端 重点解决用户中心、开发者平台、管理后台3个应 MDP-主数据平台,后端项目。专注于单点登录解决方案。内置用户中心、开发者平台、管理后台3个应用。包含:单点登录、Oauth2 登录、用户身份管理、应用申请、应用接入、主数据维护、主数据订阅、主数据广播、应用接口调用、接口管理管理和查看、系统配置等功能。 立即下载

题意

给定有nnn个节点的树,节点iii与 ⌊i2⌋\lfloor\frac i2\rfloor⌊2i​⌋有距离为LiL_iLi​的边。

mmm次询问,每次询问给出A,HA,HA,H

​若某个节点到AAA的距离LLL小于HHH,则会产生H−LH-LH−L的贡献,求树上所有点与AAA产生的贡献之和。

n≤106,m≤105n\le10^6,m\le10^5n≤106,m≤105


题解

这棵树是一颗完全二叉树.设depu{\rm dep}_udepu​表示uuu到111的距离。

分别考虑uuu子树内的答案和子树外的答案:

  1. 子树内的答案即
    ∑depv−depu<HH−(depv−depu)=∑depv<H+depu(H+depu)−depv=s(H+depu)−∑depv<H+depudepv\sum_{{\rm dep}_v-{\rm dep}_u<H}H-({\rm dep}_v-{\rm dep}_u)=\sum_{{\rm dep}_v<H+{\rm dep}_u}(H+{\rm dep}_u)-{\rm dep}_v=s(H+{\rm dep}_u)-\sum_{{\rm dep}_v<H+{\rm dep}_u}{\rm dep}_vdepv​−depu​<H∑​H−(depv​−depu​)=depv​<H+depu​∑​(H+depu​)−depv​=s(H+depu​)−depv​<H+depu​∑​depv​
    其中s=∑[depv<H+depu]s=\sum[{\rm dep}_v<H+{\rm dep}_u]s=∑[depv​<H+depu​].
    将uuu子树内所有的depv{\rm dep}_vdepv​放到的一个数组aua_uau​中,对aua_uau​排序后求其前缀和数组Sumu{\rm Sum}_uSumu​。
    那么这部分答案就可以通过对aua_uau​数组二分得到sss算出来,即s(H+depu)−Sumu[s]s(H+{\rm dep}_u)-{\rm Sum}_u[s]s(H+depu​)−Sumu​[s]。
  2. 父亲faufa_ufau​及其兄弟节点www.父亲的答案即H−LuH-L_uH−Lu​.兄弟节点www的子树内的节点的答案即
    ∑depv−depw+Lu+Lw<HH−(depv−depw+Lu+Lw)=s′(H+depw−Lu−Lw)−∑depv<H+depw−Lu−Lwdepv\sum_{{\rm dep}_v-{\rm dep}_w+L_u+L_w<H}H-({\rm dep}_v-{\rm dep}_w+L_u+L_w)=s'(H+{\rm dep}_w-L_u-L_w)-\sum_{{\rm dep}_v<H+{\rm dep}_w-L_u-L_w}{\rm dep}_vdepv​−depw​+Lu​+Lw​<H∑​H−(depv​−depw​+Lu​+Lw​)=s′(H+depw​−Lu​−Lw​)−depv​<H+depw​−Lu​−Lw​∑​depv​
    可以发现上式和1.1.1.中的式子形式相同,故可以统一处理.
  3. 父亲的父亲及父亲的兄弟节点…

由于这是棵完全二叉树,故暴力跳父亲算答案最多跳log⁡n\log nlogn次,算上二分的log⁡n\log nlogn,单次询问复杂度为log⁡2n\log^2nlog2n.
aua_uau​可以自底向上通过归并求出,且根据完全二叉树的特性,可以采用非递归的形式求解降低常数。

时间复杂度O(nlog⁡n+mlog⁡2n)O(n\log n+m\log^2n)O(nlogn+mlog2n)

#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 5;
typedef long long ll;
int n, m, dep[N], Len[N];
vector<int> a[N];
vector<ll> Sum[N];
inline ll Calc(int u, int H) {
    if (H <= 0 || !a[u].size())
        return 0;
    int s = lower_bound(a[u].begin(), a[u].end(), H) - a[u].begin();
    return s ? (ll)s * H - Sum[u][s - 1] : 0;
}
int main() {
    scanf("%d%d", &n, &m);
    for (int i = 2; i <= n; ++i)
        scanf("%d", Len + i);
    for (int u = 1; u <= n / 2; ++u) {
        int L = u << 1, R = L | 1;
        if (L <= n)
            dep[L] = dep[u] + Len[L];
        if (R <= n)
            dep[R] = dep[u] + Len[R];
    }
    for (int u = n; u; --u) {
        int L = u << 1, R = L | 1;
        a[u].emplace_back(dep[u]);
        if (R <= n)
            merge(a[L].begin(), a[L].end(), a[R].begin(), a[R].end(),
                  back_inserter(a[u]));
        else if (L <= n)
            a[u].insert(a[u].end(), a[L].begin(), a[L].end());
        Sum[u].resize(a[u].size());
        Sum[u][0] = a[u][0];
        for (int i = 1; i < (int)Sum[u].size(); ++i)
            Sum[u][i] = Sum[u][i - 1] + a[u][i];
    }
    for (int u, H; m--;) {
        scanf("%d%d", &u, &H);
        ll Ans = Calc(u, H + dep[u]);
        for (H -= Len[u]; H > 0 && u != 1; H -= Len[u >>= 1])
            Ans += H + Calc(u ^ 1, H - Len[u ^ 1] + dep[u ^ 1]);
        printf("%lld\n", Ans);
    }
    return 0;
}
Win7时间修复(时间错误修复文件) 运行方法:解压后运行reg文件即可。 支持的Win7版本: 1. Windows 7 Starter(入门版 / 初级版) 2. Windows 7 Home Basic(家庭普通版) 3. Windows 7 Home Premium(家庭高级版) 4. Windows 7 Professional(专业版) 5. Windows 7 Enterprise(企业版) 6. Windows 7 Ultimate(旗舰版) 7. Windows 7 Professional for Embedded Systems(嵌入式专业版) 8. Windows 7 Ultimate for Embedded Systems(嵌入式旗舰版) 立即下载

相关推荐

科技中介服务机构想要提升服务效率,需要哪些数智工具支持?.docx

科技中介服务机构想要提升服务效率,需要哪些数智工具支持?

cf894 D .Ralph And His Tour in Binary Country 二叉树性质

题意的连边描述很容易想到线段树,而线段树是个二叉树。 题意求的是,每次询问某个节点到其他所有节点的距离中,大于H的和是多少。 由于是只加大于H的,所以不能换根. 每次都要暴力查询。 不过我们可以预处理出来一些东西。 容易发现,预处理出某个节点到子树所有节点的距离很容易,求其中大于H的可以用二分查找。 而二叉树最多logn层,每层n个节点,空间最大nlogn。 所以直接建课树,节点存一...

bjfu170203101的博客 224

usb 扩容盘检测修复工具源码,编译产物

usb 扩容盘检测修复工具源码,编译产物

Ralph And His Tour in Binary Country CodeForces - 894D(树上前缀和,好题)

Ralph is in the Binary Country. The Binary Country consists of n cities and (n - 1) bidirectional roads connecting the cities. The roads are numbered from 1 to (n - 1), the i-th road connects the city...

tomjobs的博客 502

融合UWB和IMU割草机定位EKF研究(Matlab代码实现)

内容概要:本文主要介绍了一个名为“Plecs全桥LLC谐振变换器仿真模型”的技术资源,该资源聚焦于电力电子领域中的LLC谐振变换器建模与仿真,涵盖开环、闭环控制、软启动设计及参数优化等核心内容。文档不仅提供了LLC变换器的详细建模方法与仿真案例,还系统梳理了其在高效电源转换系统中的应用,包括隔离型全桥拓扑结构的设计与性能分析。此外,资源汇总了大量Matlab/Simulink仿真模型及相关科研方向,涉及新能源并网、储能控制、电机驱动等多个前沿领域,全面展示LLC谐振变换器在现代电力系统中的关键技术实现路径。同时,文档附带多种学习资料获取途径,如网盘链接和公众号资源,便于研究人员深入实践与拓展研究。; 适合人群:具备扎实的电力电子、自动控制理论基础,从事新能源发电、开关电源设计、电力系统仿真等相关领域的研究生、工程师及科研人员。; 使用场景及目标:①深入理解LLC谐振变换器的工作原理、建模方法与控制策略;②开展电力电子变换器的仿真验证与参数优化设计;③支撑科研项目、学位论文或工程项目的系统仿真与方案验证; 阅读建议:建议结合所提供的仿真模型与参考文献,使用Plecs或Simulink软件进行动手实践,重点掌握LLC谐振变换器的建模流程、闭环控制设计、软启动机制及参数调试技巧,以全面提升在实际工程中的应用与创新能力。

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)

基于变频控制的多相交错LLC谐振变换器闭环仿真(Simulink仿真实现)内容概要:本文主要介绍了基于Plecs的全桥LLC谐振变换器仿真模型,涵盖变频控制下的多相交错LLC谐振变换器闭环仿真、V2G电动汽车ACDC整流与双向CLLC谐振变换器充放电仿真、LLC谐振变换器的开环与闭环软启动设计,以及储能系统中双向Buck-Boost变换器结合模型预测电流控制和电压下垂控制的仿真研究。同时,文档列举了多种电力电子系统与控制策略的Simulink/Plecs仿真案例,涉及三相交错并联Buck变换器、三电平Buck直流变换器、单相Boost PFC电路等,展示了丰富的电力变换器建模与控制技术。此外,还包括参数设计报告、计算书及相关参考文献,适用于从事电力电子、新能源发电、电动汽车充放电系统等领域的研究人员和技术开发人员。; 适合人群:具备电力电子、自动控制理论基础,从事新能源、电动汽车、电力系统等相关领域研究的研发人员、高校研究生及高年级本科生。; 使用场景及目标:① 学习和掌握LLC谐振变换器及其他典型电力电子变换器的工作原理与建模方法;② 实现闭环控制策略如变频控制、软启动、模型预测控制、下垂控制等的仿真验证;③ 支持科研项目、毕业设计或工程开发中的系统仿真与优化设计。; 阅读建议:建议结合文中提供的仿真模型、设计报告与参考文献,逐步搭建并调试相应系统,重点关注控制策略的实现细节与参数整定过程,以深入理解系统动态响应特性与控制性能。

[Codeforces 894D. Ralph And His Tour in Binary Country]预处理+二分

[Codeforces 894D. Ralph And His Tour in Binary Country]预处理+二分分类:Tree binary search1. 题目链接[Codeforces 894D. Ralph And His Tour in Binary Country] 2. 题意描述有一棵nn个节点的二叉树。第ii条边连接着点i+1i+1和点⌊i+12⌋\lfloor\frac{i

Fighting! 774

望获实时Linux与国产芯片协同:打造LinuxCNC数控机床的全栈国产化方案

本文探讨了如何通过望获实时Linux与飞腾、龙芯等国产芯片的深度协同,为LinuxCNC数控机床打造全栈国产化方案。望获实时Linux通过中断隔离等核心技术,提供亚微秒级确定性响应,解决了传统Linux系统实时性不足的痛点,使LinuxCNC得以稳定驱动高精度机床。该方案实现了从硬件、操作系统到应用软件的全栈自主可控,为工业控制领域提供了高性能、可定制的国产化选择。

weixin_29291069的博客 648

Codeforces894D Ralph And His Tour in Binary Country

标签:二分,树题目题目传送门Ralph is in the Binary Country. The Binary Country consists of n cities and (n - 1) bidirectional roads connecting the cities. The roads are numbered from 1 to (n - 1), the i-th road conn

Welcome to yjjr's blog! 464

面向网络攻击行为可视化分析系统实现【WebSocket + 可视化】

本系统主要应用于网站运维管理,它解决了网站运维人员排查网络攻击行为复杂且繁琐等问题,提高了运维人员网络安全分析的效率和准确性。

oNew_Lifeo的博客 1622

基于springboot生鲜食品订购系统的设计与实现

近年来互联网络的迅猛发展和电子终端设备的普及,赋予了各行业充足的发展空间。微信小程序的O2O生鲜食品订购相比于传统信息技术,时效性是它最大的特色,已经在电子娱乐、经济等中发挥着举足轻重的作用。短时间内迅速扩大了线上管理系统的规模。尽管O2O生鲜食品订购已经有了很大程度的发展,但在微信小程序的O2O生鲜食品订购领域上却少有建设。

1024

codeforces 894d Ralph And His Tour in Binary Country

D. Ralph And His Tour in Binary CountryRalph is in the Binary Country. The Binary Country consists of n cities and (n - 1) bidirectional roads connecting the cities. The roads are numbered from 1 to (

u011535421的博客 248

TYPE-C接口电路设计篇(一)

常见USB接口类型 随着USB Type-C接口的推行,USB Type-C是一种通用串行总线(USB)的硬件接口形式,USB Type-C接口在消费类产品普及程度越来越高,常见的适配器、笔电、手机等产品都兼容USB Type-C设计,接口多元化逐渐趋向归一,从而可以看出USB Type-C的重要性。 在了解USB Type-C接口之前,我们先来回顾下USB Type-A和USB Type-B接口,USB3.0 Type-A和Type-B接口定义分别如下。 USB 3.0...

JWu的博客 3万+

Codeforces 894.D Ralph And His Tour in Binary Country (预处理、二分)

题目链接:894D 题目意思:  给你一个树,边的连接方式是i与i/2连一条无向边,长度为l[i]。q个询问,每个询问给出一个点a和一个值H,求以a为起点到任意点为终点获得(happiness=H-路径长度)不为负数的所有happiness之和。  可以发现这个题目中所给出的树是一棵拍立非常整齐的二叉树(emmmmmm。。。类似于线段树的那种树形结构) 某个节点k的左儿子是2*k,右儿

会打架的程序员不是好客服 327

PLL Performance,Simulation and Design 4th学习笔记——Chapter1

Chapter1:基本PLL概述 VCO:Voltage-Controlled Oscillator压控振荡器,对于给定的一个输入电压,输出特定频率的振荡信号。 PLL:Phase-Locked Loops锁相环,输出特定频率,特定相位的振荡信号。 基本PLL操作和术语 基本模块 基本模块 输入 输出 传输函数 说明 XTAL - 参考频率ϕref\phi_{ref}ϕref​ - 稳定的晶振提供输入参考频率(这里用相位,便于理解鉴相器) R Counter ϕref\phi_{ref

张硕的博客 1553

BEVFormer vs BEVFusion:5个关键差异点帮你选对环视感知方案

本文深入对比了自动驾驶领域两大主流环视感知方案BEVFormer与BEVFusion。BEVFormer作为纯视觉BEV感知的标杆,通过注意力机制隐式学习深度,成本较低;而BEVFusion作为多模态融合典范,融合激光雷达与摄像头数据,在性能、小目标检测及极端环境鲁棒性上优势显著。文章从计算效率、部署成本、数据依赖性等五个核心维度提供选型指南,帮助技术决策者根据自身算力预算与传感器配置做出明智选择。

weixin_29306011的博客 124

codeforces 894D Ralph And His Tour in Binary Country

D. Ralph And His Tour in Binary Country time limit per test 2.5 seconds memory limit per test 512 megabytes input standard input output standard output Ralph is in the Binary Country. The Bin...

KIDGIN7439的专栏 407

PCL 三维重建 基于B样条曲线的曲面重建算法

本文将介绍如何使用B样条曲线进行三维点云数据的曲面重建。B样条曲线和曲面是一种强大的数学工具,在计算机图形学、CAD设计等领域中广泛应用。通过对点云数据进行曲面拟合和优化,最终得到精确的曲面模型。本示例展示了如何利用PCL中的B样条曲线拟合算法进行三维曲面重建,并对重建结果进行可视化。

纵马踏花向自由 658

Codeforces 894.D Ralph And His Tour in Binary Country_ vector

给你一个树,边的连接方式是i与i/2连一条无向边,长度为l[i]。q个询问,每个询问给出一个点a和一个值H,求以a为起点到任意点为终点获得(happiness=H-路径长度)不为负数的所有happiness之和。 看了题解才弄懂的,每一个点递增有序地储存以它为根节点,所有子节点(包括自己)到它的距离并处理出前缀和。所需总空间为O(nlog(n)),然后对于每个询问,从询问点不断往上爬(编号/2就...

c_czl的博客 155

【Windows Server 2019】DNS服务器的配置与管理——DNS正向解析

博文介绍了如何使用正向解析区,包括创建和添加并验证,以及术语 主机记录,别名,邮件交换记录的解释。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

[Codeforces Round #447] 894D - Ralph And His Tour in Binary Country(预处理,二分)

Ralph And His Tour in Binary Countrytime limit per test2.5 seconds memory limit per test512 megabytes inputstandard input outputstandard outputRalph is in the Binary Country. The Binary Country cons

Sega_hsj 's Blog 1158

Camera2Demo

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

Codeforces 894.D Ralph And His Tour in Binary Country

D. Ralph And His Tour in Binary Country time limit per test 2.5 seconds memory limit per test 512 megabytes input standard input output standard output Ralph is in the Bina...

weixin_30652491的博客 127

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【Codeforces】894D. Ralph And His Tour in Binary Country 思维+二分

题意 给定一棵$n$个节点完全二叉树,$m$次询问,每次询问从$a$节点到其它所有节点(包括自身)的距离$L$与给定$H_a$之差$H_a-L$大于$0$的值之和 对整棵树从叶子节点到父节点从上往下预处理出每个节点到它的子节点的距离$d$并排序,因为每个节点最多有$\log n$个父亲,所以预处理时间复杂度为$O(n\log n)$ 通过二分查找可以得到任意节点到子节点的满足条件的距离,对于每个...

weixin_30780649的博客 107

Codeforces #Round 447Div2 D - Ralph And His Tour in Binary Country

题目链接:http://codeforces.com/contest/894/problem/D D. Ralph And His Tour in Binary Country time limit per test 2.5 seconds memory limit per test 512 megabytes input standard input

qq_36876305的博客 306

Codeforces Round #447 (Div. 2) D. Ralph And His Tour in Binary Country(dfs)

题目链接:http://codeforces.com/contest/894/problem/D 理性分析一下,很容易发现这个树只有logn层,所以对于每次查询,我们暴力向根走,然后查询当前节点除更新过的子树外所有的子树对答案的贡献,这里可以用容斥的方法解决重复计数的问题,然后每个节点维护一个vector表示子树中所有点到这个点的距离,排序后用另一个vector维护前缀和,每次二分查找答

bibibibi的博客 563
上一篇: [Codeforces1290C]Prefix Enlightenment
下一篇: [NowCoder5666H]Minimum-cost Flow
Kelin__
博客等级 码龄10年 95粉丝 122原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值